我正在尝试将数据导入PostgreSQL,并在Windows 7中使用NULL
值。
"Code1.2";"08";"ALCALA";"ACTIVO SERVICIO";"EN SERVICIO";"";"2017/04/08";1
"Code1.3";"46";"BARCELONA";"ACTIVO SERVICIO";"EN SERVICIO";"";"2009/07/01";0
我不想导入引号"data"
和""
值。
CREATE TABLE IF NOT EXISTS public.TABLA1 (
CODIGO text,
COD text,
MUNICIPIO text,
ESTADO text,
SITUACION text,
FECHA_INICIO date,
FECHA_FIN date,
CONTADOR numeric
);
如果我使用以下内容导入数据,我可以处理NULL
值,但数据中包含""
:
COPY public.TABLA1 (
CODIGO,
COD,
MUNICIPIO,
ESTADO,
SITUACION,
FECHA_INICIO,
FECHA_FIN,
CONTADOR
)
FROM 'C:\DATA\ORIGEN\fichero_prueba.csv'
WITH (DELIMITER ';', NULL '""');
| CODIGO | COD | MUNICIPIO | ESTADO |SITUACION |FECHA_INICIO|...
| --------- | ---- | --------- | ----------------|-------------|------------|...
| "Code1.2" | "08" |"ALCALA" |"ACTIVO SERVICIO"|"EN SERVICIO"|[null] |...
| "Code1.3" | "46" |"BARCELONA"|"ACTIVO SERVICIO"|"EN SERVICIO"|[null] |...
...
另一方面,如果我使用以下内容导入数据,请尝试保留引号:
COPY public.TABLA1 (
CODIGO,
COD,
MUNICIPIO,
ESTADO,
SITUACION,
FECHA_INICIO,
FECHA_FIN,
CONTADOR
)
FROM 'C:\DATA\ORIGEN\fichero_prueba.csv'
WITH DELIMITER ';' CSV QUOTE '"' NULL '""';
错误: CSV引号字符不得出现在NULL规范
中
不使用NULL
:
COPY public.TABLA1 (
CODIGO,
COD,
MUNICIPIO,
ESTADO,
SITUACION,
FECHA_INICIO,
FECHA_FIN,
CONTADOR
)
FROM 'C:\DATA\ORIGEN\fichero_prueba.csv'
WITH DELIMITER ';' CSV QUOTE '"';
错误:类型为date的输入语法无效:«»
如何在日期类型中导出没有""
和处理NULL
值的数据?
答案 0 :(得分:1)
根据您在评论中的一个答案,我认为您可以访问该文件(因为您可以将扩展程序从.dat
更改为.csv
),因此我建议您在Excel(或任何等效文件)并删除FECHA_INICIO
列中的引号,以代替:
"Code1.2";"08";"ALCALA";"ACTIVO SERVICIO";"EN SERVICIO";"";"2017/04/08";1
"Code1.3";"46";"BARCELONA";"ACTIVO SERVICIO";"EN SERVICIO";"";"2009/07/01";0
你有:
"Code1.2";"08";"ALCALA";"ACTIVO SERVICIO";"EN SERVICIO";;"2017/04/08";1
"Code1.3";"46";"BARCELONA";"ACTIVO SERVICIO";"EN SERVICIO";;"2009/07/01";0
如果您可以执行此操作,则以下内容会将数据插入表格而不使用双引号,并在NULL
列中插入FECHA_INICIO
:
COPY public.TABLA1 (
CODIGO,
COD,
MUNICIPIO,
ESTADO,
SITUACION,
FECHA_INICIO,
FECHA_FIN,
CONTADOR
)
FROM 'C:\DATA\ORIGEN\fichero_prueba.csv'
WITH CSV DELIMITER ';' QUOTE '"';