Jak określić kartę w kopiach front-end postgres


84

Chciałbym użyć polecenia psql "\ copy", aby pobrać dane z pliku rozdzielanego tabulatorami do Postgres. Używam tego polecenia:

\copy cm_state from 'state.data' with delimiter '\t' null as ;

Ale pojawia się to ostrzeżenie (tabela w rzeczywistości ładuje się dobrze):

WARNING:  nonstandard use of escape in a string literal
LINE 1: COPY cm_state FROM STDIN DELIMITER '\t' NULL AS ';'
HINT:  Use the escape string syntax for escapes, e.g., E'\r\n'.

Jak określić kartę, jeśli „\ t” nie jest poprawne?


14
Wypróbuj, co sugeruje komunikat o błędzie:\copy cm_state from 'state.data' with delimiter E'\t' null as ';'
Frank Farmer

2
E rozpoczyna sekwencję ucieczki. Pomyśl o E tak, jak o podwójnym cudzysłowie w C. E '\ t' == "\ t".
Sean

Odpowiedzi:


182

Służy E'\t'do informowania postgresql, że mogą tam znajdować się znaki ucieczki:

\copy cm_state from 'state.data' with delimiter E'\t' null as ';'

16
Dzięki! To również rozwiązało COPY delimiter must be a single one-byte characterdla mnie mniej informacyjny błąd . Dodanie go tutaj, aby wyszukiwarki mogły go odebrać.
Denis Drescher

To powinna być kolejna odpowiedź z komunikatem o błędzie. Tylko po to, żeby wyszukiwarki to
odebrały

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.