错误:" DATE"类型的输入语法无效;在PostgreSQL中导入数据时

时间:2015-03-11 05:34:57

标签: postgresql csv import

我从.LOD文件(包含csv格式的数据)导入PostgreSQL数据库中的数据。对于导入,我遵循以下步骤:

1)右键单击表名

2)点击导入

3)选择必须从中导入数据的文件

4)完成

但是在执行此操作时,我收到一条表格的错误消息,其中包含以下数据:

APP_PGM_APPLY,APP_PGM_CS_NUM,APP_PGM_REQ_DT,APP_PGM_STS,APP_PGM_STS_DT,CR_TS_HI,CR_TS_LO,EFF_BEG_DT,EFF_END_DT,VOID_SW,APP_PGM_NUM
"RE","TD877E3","20150105","DN","20150105","   362952774","   304895920","20150105",          ,   ,"2H01889"                       
"RE","B1ZBA17","20150130","PE","20150130","   363222251","   178702340","20150130","20150204",   ,"2I15600"

错误消息是:

enter image description here

允许两个日期字段接受空值。但它仍然是抛出这个错误。 表定义:

CREATE TABLE app_pgm_choice
(
  app_pgm_apply character(2),
  app_pgm_cs_num character(7),
  app_pgm_req_dt date,
  app_pgm_sts character(2),
  app_pgm_sts_dt date,
  cr_ts_hi integer NOT NULL,
  cr_ts_lo integer NOT NULL,
  eff_beg_dt date,
  eff_end_dt date,
  void_sw character(1),
  app_pgm_num character(7) NOT NULL,
  CONSTRAINT app_pgm_choice_pk1 PRIMARY KEY (app_pgm_num, cr_ts_hi, cr_ts_lo)
)

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

尝试使用此

进行复制
copy tablename from 'd:/folder/myfile.csv' delimiter ',' csv WITH NULL AS 'null';

我dint导入.lod文件,但您可以尝试将'd:/folder/myfile.csv'替换为'd:/folder/myfile.lod'或将.lod文件重命名为.csv

答案 1 :(得分:0)

经过长时间的努力,我得到了解决方案。我用以下方式更改了我的.LOD文件内容(用''替换日期列数据''或者我可以说我删除了日期列的空白区域)

APP_PGM_APPLY,APP_PGM_CS_NUM,APP_PGM_REQ_DT,APP_PGM_STS,APP_PGM_STS_DT,CR_TS_HI,CR_TS_LO,EFF_BEG_DT,EFF_END_DT,VOID_SW,APP_PGM_NUM
"RE","TD877E3","20150105","DN","20150105","   362952774","   304895920","20150105",,   ,"2H01889"                       
"RE","B1ZBA17","20150130","PE","20150130","   363222251","   178702340","20150130","20150204",   ,"2I15600"

我运行以下命令:

COPY app_pgm_choice FROM 'E:\Japser\Jasper Reports\Data\APP_PGM_CHOICE.LOD' CSV HEADER;

它的工作正常:)