Oracle Sql Loader控制文件出现问题

时间:2009-07-13 21:37:55

标签: oracle sql-loader ora-01722

我正在尝试使用sql loader加载一些数据。这是我的控制/数据文件的顶部:

LOAD DATA
INFILE *
APPEND INTO TABLE economic_indicators
FIELDS TERMINATED BY ','
(ASOF_DATE DATE 'DD-MON-YY',
VALUE FLOAT EXTERNAL,
STATE,
SERIES_ID INTEGER EXTERNAL,
CREATE_DATE DATE 'DD-MON-YYYY')
BEGINDATA
01-Jan-79,AL,67.39940538,1,23-Jun-2009

......很多其他数据线。

问题是sql loader无法识别我指定的数据类型。这是日志文件:

Table ECONOMIC_INDICATORS, loaded from every logical record.
Insert option in effect for this table: APPEND

Column Name                  Position   Len  Term Encl Datatype
------------------------------ ---------- ----- ---- ---- ---------------------
ASOF_DATE                           FIRST     *   ,       DATE DD-MON-YY       
VALUE                                NEXT     *   ,       CHARACTER            
STATE                                NEXT     *   ,       CHARACTER            
SERIES_ID                            NEXT     *   ,       CHARACTER            
CREATE_DATE                          NEXT     *   ,       DATE DD-MON-YYYY     

value used for ROWS parameter changed from 10000 to 198
Record 1: Rejected - Error on table ECONOMIC_INDICATORS, column VALUE.
ORA-01722: invalid number

...许多类似的错误,如果尝试将char数据插入数字列,则会出现这种错误。

我没有尝试过任何数据类型规范,所有其他数字规范,并且始终存在同样的问题。有什么想法吗?

此外,有关为何更改Rows参数的任何想法?

1 个答案:

答案 0 :(得分:3)

从您的示例中,SQL * Loader将尝试将字符串“AL”计算为数字值,这将导致您提供的错误消息。样本数据看起来可能是第三个位置的十进制数,而不是列列表中指定的第二个。