Oracle 如何解决基于SQL*加载器的并发程序中的ORA-01722:无效数字错误?
我正在使用基于sql*加载器的并发程序将.csv上载到Oracle数据库表 我的桌子是:Oracle 如何解决基于SQL*加载器的并发程序中的ORA-01722:无效数字错误?,oracle,csv,sql-loader,oracle-apps,Oracle,Csv,Sql Loader,Oracle Apps,我正在使用基于sql*加载器的并发程序将.csv上载到Oracle数据库表 我的桌子是: CREATE TABLE Production_Plan ( PROCESS VARCHAR2(4000 BYTE), SKU VARCHAR2(4000 BYTE), MACHINE VARCHAR2(4000 BYTE), PRODUCTION NUMBER ) .csv表中的一个示例行是: 并发程序运行后发出警告,日志文件显示: 但是,如果我通过T
CREATE TABLE Production_Plan
(
PROCESS VARCHAR2(4000 BYTE),
SKU VARCHAR2(4000 BYTE),
MACHINE VARCHAR2(4000 BYTE),
PRODUCTION NUMBER
)
.csv表中的一个示例行是:
并发程序运行后发出警告,日志文件显示:
但是,如果我通过TOAD导入与excel文件相同的数据,则不会产生任何错误控制文件;为了简单起见,我将示例数据放在那里。注意
to_number
功能应用于production
列
load data
infile *
replace
into table production_plan
fields terminated by ';'
(process,
sku,
machine,
production "to_number(:production, '999.99')"
)
begindata
sample process;0.12 x 770;sample machine;11.3
加载会话和结果:
SQL> $sqlldr scott/tiger control=test3.ctl log=test3.log
SQL*Loader: Release 11.2.0.2.0 - Production on Sub Svi 1 13:25:57 2021
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Commit point reached - logical record count 1
SQL> select * From production_plan;
PROCESS SKU MACHINE PRODUCTION
-------------------- -------------------- -------------------- ----------
sample process 0.12 x 770 sample machine 11,3
SQL>
我已将.ctl文件修改为->选项(skip=1)将数据填充“infle PATH”追加到表生产计划字段中,以“,”结尾,可选地用“,”结尾的空值(进程、SKU、机器、生产”括起来,改为“>编号(:Production,'999.99')”),但它再次给出了相同的错误
SQL> $sqlldr scott/tiger control=test3.ctl log=test3.log
SQL*Loader: Release 11.2.0.2.0 - Production on Sub Svi 1 13:25:57 2021
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Commit point reached - logical record count 1
SQL> select * From production_plan;
PROCESS SKU MACHINE PRODUCTION
-------------------- -------------------- -------------------- ----------
sample process 0.12 x 770 sample machine 11,3
SQL>