2017-03-23 3 views
0

PostgreSQL 버전 8.2를 사용하는 Greenplum DB 4.3 프로젝트에서 작업 중입니다. COPY를 사용하여 STDIN으로 데이터를 가져 오려고합니다.Greenplum postgresql COPY : 마지막 예상 열 뒤의 추가 데이터

데이터에는 백 슬래시, 쉼표, 파이프 및 기타 생각할 수있는 항목이 포함되어 있습니다. 이 값은 변경할 수 없습니다.

1000

, "A", 0, "", "LKP", "", "L", 0, "U", "| 로컬 복사본 없음": 아래

는 데이터의 예입니다 ,

1,001

, "B", 0, "", "LIT", "", "L", 0, "U", "[1005] \ 소스 \"

명령하는 I 사용하고 있습니다 :

(psql를) CSV '/home/gpadmin/temp.csv'에서 \ 복사 cdr.wf_step_props_ist ','NEWLINE 'CRLF'QUOTE ' "'

필드 DELIMITER를 누락 FILL

(C#을) COPY cdr.WF_STEP_PROPS_IST (STEP_ID, PARAM_CODE, OCCUR_NO, VALUE_FILE, EVAL_TYPE, DPC_FAILURE_MSG, DPC_PRIORITY, DPC_SEQ, VALUE_STATE, PARAM_VALUE) STDIN CSV NEWLINE 'CRLF'QUOTE FROM '\ "'NULL ''DELIMITER ','

FIELDS

MISSING하지만이 오류가 계속 FILL :

ERROR: extra data after last expected column (seg11 sdw3:40003 pid=14935) CONTEXT: COPY wf_step_props_ist, line 1: "10003,"FCExtConn",0,"","LKP","","L",0,"U","None|Local copy", 10003,"FCInput",0,"","LIT","","L",0,"U"..."

나는 (CSV 파일로 복사를 사용하여) 우분투에 C# & PSQL CLI에서이 작업을 시도하고 그 결과는 동일합니다.

stackoverflow에서 찾은 대답은이 문제에 대한 해결책을 제공하지 않습니다. 왜 이것이 작동하지 않는지 설명 할 수있는 사람이 있습니까?

감사

+0

을 위해이 링크를 보면 열이 10 개 있지만 CSV 파일에 11이 있습니다. 마지막 쉼표는 불필요합니다. –

+0

gpload 또는 gpfdist를 사용하는 외부 테이블 대신 COPY가있는 데이터를 Greenplum으로로드하는 이유는 무엇입니까? gpload는 훨씬 빠르며 쉽게 구성 할 수 있습니다. –

+0

나는 Greenplum과 Postgres 9+를 충족시키는 데이터를 전송하는 하나의 방법을 시도하고있다. – zdb

답변

0

은 내가 PostgreSQL 9.4.10과의 작동을이 실행 한 :

copy cdr.wf_step_props_ist FROM STDIN CSV DELIMITER ',' QUOTE ''''; < your_file.csv 

데이터 :

1000,"A",0,"","LKP","","L",0,"U","None|Local copy"

1001,"B",0,"","LIT","","L",0,"U","[1005]\source\"

은 또한 더 많은 정보에 대한 copy in PostgreSQL 8.2

+0

나는 Postgres의 최신 버전에서 작동합니다. Greenplum에서는 작동하지 않습니다. – zdb

+0

'FILL MISSING FIELDS' 및'NEWLINE 'CRLF''은 복사 문서에 없습니다. 그리고 오류 출력에는 예상보다 많은 열이 있다고 표시됩니다. 행 끝에있는 쉼표를 제거하고 지원되는 복사 매개 변수를 피하십시오. 그리고'psql'로 다시 시도하십시오 –

+0

의견을 보내 주셔서 감사합니다 – zdb