Postgres 프런트 엔드에서 탭을 지정하는 방법


84

psql "\ copy"명령을 사용하여 탭으로 구분 된 파일에서 Postgres로 데이터를 가져오고 싶습니다. 이 명령을 사용하고 있습니다.

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

하지만이 경고가 표시됩니다 (테이블이 실제로 제대로로드 됨).

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'.

'\ t'가 올바르지 않은 경우 어떻게 탭을 지정합니까?


14
오류 메시지가 제안하는 내용을 시도해보십시오.\copy cm_state from 'state.data' with delimiter E'\t' null as ';'
Frank Farmer

2
E는 이스케이프 시퀀스를 시작합니다. E를 C에서 큰 따옴표로 묶은 문자열처럼 생각하십시오. E '\ t'== "\ t".
Sean

답변:


182

E'\t'postgresql에 이스케이프 문자가있을 수 있음을 알리는 데 사용 합니다.

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

16
감사! 이것은 또한 COPY delimiter must be a single one-byte character나에게 덜 유익한 오류 를 해결했습니다 . 여기에 추가하면 검색 엔진이 선택할 수 있습니다.
Denis Drescher 2015

이것은 오류 메시지가있는 또 다른 대답이어야합니다. 그냥 그래서 검색 엔진 : 그것을 선택하는 것이
RK Kuppala

5

넌 할 수있어 copy cm_state from stdin with (format 'text')


1
텍스트 파일의 기본 구분 기호 탭입니다 .. 난이 사용하고 그것을 .. 작동 postgresql.org/docs/9.2/static/sql-copy.html
user4372693

1
이것은 쉘 스크립트에 명령을 넣고 싶을 때 도움이됩니다 $$\t$$. 이상하게도 작동하지 않는 것 같습니다.
Otheus

이는 pg_dump다른 옵션을 지정하지 않고에서 생성 한 데이터에 대해 작동 합니다.
GuiRitter 2019-04-04
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.