Shell sqlldr ORA-01722:由于csv列中存在十进制数,因此数字无效
我正在尝试将csv文件中的数据加载到orcale表中。 我将sqlldr与一个控制文件一起使用 一切正常,但在某些情况下,由于十进制数,行无法加载。 所以在oracle表中,列是:数字(10)-这不应该是问题所在 我的控制文件如下所示:(它们大约多了15列,但基本上是关于列数量的Shell sqlldr ORA-01722:由于csv列中存在十进制数,因此数字无效,shell,csv,unix,loader,sql-loader,Shell,Csv,Unix,Loader,Sql Loader,我正在尝试将csv文件中的数据加载到orcale表中。 我将sqlldr与一个控制文件一起使用 一切正常,但在某些情况下,由于十进制数,行无法加载。 所以在oracle表中,列是:数字(10)-这不应该是问题所在 我的控制文件如下所示:(它们大约多了15列,但基本上是关于列数量的 OPTIONS (SKIP=1) LOAD DATA INFILE * APPEND INTO TABLE .. FIELDS TERMINATED BY ";" OPTIONALLY ENCLOSED BY
OPTIONS (SKIP=1)
LOAD DATA
INFILE *
APPEND
INTO TABLE ..
FIELDS TERMINATED BY ";" OPTIONALLY ENCLOSED BY '"'
(
Quantity_1, Quantity_2, Quantity_3,
)
在csv文件中,数量_1的行如下所示
2.58
4343
232
1212
对于第一行,他给出了错误:
ORA-01722: invalid number
有人能帮忙吗?如果你的列定义为数字(10),插入时应该四舍五入到3。我怀疑你的实际数据大于2.58。无论如何,你的列应该定义为数字(12,2),也就是说,总共有12位,其中两位在小数点的左边。例如,9999999999你应该阅读以下内容:这有什么帮助?你的语言设置中是否有小数分隔符,而不是点?@Romeo Ninov抱歉,我不明白如何检查csv文件中的这些设置。它们必须是选项卡中的点雷诺,我来谈谈你们的环境。例如,在保加利亚语中,小数点分隔符是逗号,而不是点。