sqlldr ORA-01722:无效的数字,因为csv列中的十进制数字

时间:2019-01-18 10:41:23

标签: shell csv unix loader sql-loader

我正在尝试将csv文件中的数据加载到orcale表中。 我正在使用带有控制文件的sqlldr 一切正常,但在某些情况下,由于十进制数,该行未加载。 因此,在oracle表中,该列为:Number(10)-这不应该是问题 并且我的控制文件如下所示:(它们大约还有15列,但基本上是关于列数量_1

OPTIONS (SKIP=1)
LOAD DATA 
 INFILE *
 APPEND
 INTO TABLE ..
 FIELDS TERMINATED BY ";" OPTIONALLY ENCLOSED BY '"' 
(
 Quantity_1, Quantity_2, Quantity_3,
)

在csv文件中,quantity_1的行类似于

2.58
4343
232
1212

在第一行中,他给出了错误:

ORA-01722: invalid number

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

将列定义为number(10)时,插入时应四舍五入为3。我怀疑您的真实数据大于2.58。无论如何,您的列应定义为number(12,2),即总共12位长,小数点左边的2位。即9999999999.99