【发布时间】:2017-03-24 00:09:17
【问题描述】:
我正在开发一个使用 PostgreSQL 版本 8.2 的 Greenplum DB 4.3 项目。我正在尝试使用 COPY 使用 STDIN 导入数据。
数据包含反斜杠、逗号、竖线和您能想到的任何其他内容。这些值不能更改。
以下是数据示例:
1000,"A",0,"","LKP","","L",0,"U","无|本地副本",
1001,"B",0,"","LIT","","L",0,"U","[1005]\source\",
我正在使用的命令:
(psql) \copy cdr.wf_step_props_ist from '/home/gpadmin/temp.csv' CSV FILL MISSING FIELDS DELIMITER ',' NEWLINE 'CRLF' QUOTE '"'
(c#) 复制 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 '\"' NULL ' ' DELIMITER ',' FILL MISSING FIELDS
但我不断收到此错误:
错误:最后一个预期列之后的额外数据(seg11 sdw3:40003 pid=14935) 上下文:复制 wf_step_props_ist,第 1 行: "10003,"FCExtConn",0,"","LKP","","L",0,"U","无|本地副本", 10003,"FCInput",0,"","LIT","","L",0,"U"..."
我从 Ubuntu 上的 C# 和 PSQL CLI 尝试了这个(使用 COPY 和 CSV 文件),结果是一样的。
我在 stackoverflow 上找到的答案并不能解决这个问题。有没有人可以向我解释为什么这不起作用?
谢谢
【问题讨论】:
-
你有 10 列,但你的 csv 文件有 11.. 最后一个逗号是多余的。
-
为什么你使用 COPY 将数据加载到 Greenplum 而不是 gpload 或使用 gpfdist 的外部表? gpload 快得多,而且易于配置。
-
我正在尝试一种单一的方式来传输满足 Greenplum 和 Postgres 9+ 的数据。
-
感谢您的反馈 :)
标签: c# postgresql greenplum