我正在尝试使用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参数的任何想法?
答案 0 :(得分:3)
从您的示例中,SQL * Loader将尝试将字符串“AL”计算为数字值,这将导致您提供的错误消息。样本数据看起来可能是第三个位置的十进制数,而不是列列表中指定的第二个。