“错误:数字类型的输入语法无效:NULL”postgresql

问题描述 投票:0回答:2

我开始在 porstgresql 中学习 sql。我创建了一个具有 numeric(6,2) 结构的表并尝试导入数据。但数据中有一些行具有 NULL 值。现在我收到“错误:数字类型的输入语法无效:NULL” 现在我至少有 20 列包含该 NULL 值。

遇到这种情况我该怎么办?我应该手动更改所有列还是可以对所有列自动执行此操作?

创建表 ireland_venue_gap_bonus ( id_c 小整数, 公司名称文本、公司 IDsmallint、 平均奖金数字(6,2), 平均每小时数值(6,2), 中位数奖金数值(6,2), 中位数每小时数值(6,2), 报告链接文本, 年_小整数, 平均小时PT 数字(6,2), medianHourlyPT 数值(6,2), 平均每小时温度数值(6,2), 中位数HourlyTemp 数值(6,2), perBonusFemale 数字(6,2), perBonusMale 数字(6,2), perBIK女性数字(6,2), perBIKMale 数字(6,2), pb1女性数字(6,2), pb1男性数字(6,2), pb2女性数字(6,2), pb2男性数字(6,2), pb3女性数字(6,2), pb3男性数字(6,2), pb4女性数字(6,2), pb4男性数字(6,2), 每个员工女性 numeric(6,2), 每个员工男性数字(6,2), 评论文字

那么, 复制 ireland_venue_gap_bonus FROM 'E:\Programming\SQL\Project\Data\Ireland_gender_pays_gap\Ireland_gpg.CSV' 带(CSV 格式,标题)

回复消息, 错误:数字类型的输入语法无效:“NULL” 上下文:复制 ireland_venue_gap_bonus,第 2 行,meanhourlypt 列:“NULL”

SQL状态:22P02

sql postgresql import null numeric
2个回答
0
投票
cat test.csv 
id,val
1,test
2,test2
3,null

create table csv_test (id integer, val varchar);

\copy csv_test from test.csv with csv header null 'null';
COPY 3

\pset null 'NULL'
Null display is "NULL".

select * from csv_test ;
 id |  val  
----+-------
  1 | test
  2 | test2
  3 | NULL

0
投票

要将 csv 中的字符串

NULL
视为空值,请使用
NULL 'null_string'
中的
COPY
选项(记录于 here):

COPY ireland_income_gap_bonus
FROM 'E:\Programming\SQL\Project\Data\Ireland_gender_pays_gap\Ireland_gpg.CSV'
WITH (FORMAT CSV, HEADER, NULL 'NULL')
© www.soinside.com 2019 - 2024. All rights reserved.