0

我正在尝试使用 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 加载器无法识别我指定的数据类型。这是日志文件:

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 参数的任何想法?

4

1 回答 1

3

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

于 2009-07-13T22:17:40.090 回答