【发布时间】:2015-02-15 03:13:43
【问题描述】:
我正在尝试通过 SQLoader 加载数据,但在 Invalid Number 的数字字段中出现错误
我的数据文件:
00163604~12002~S~N~N~Panasonic Juicer 1.5l Steel Color~ss~E~A~12/15/2014 3:33:57 PM~N~N~N~Y~294~SA
控制文件:
LOAD DATA
INFILE "/home/dmf/ITEMLOC.txt"
APPEND
INTO TABLE DMF.MIG_ITEM_LC
FIELDS TERMINATED BY "~"
TRAILING NULLCOLS
(
ITEM "SUBSTRB(:ITEM,1,25)",
LOC "TO_NUMBER(:LOC)",
LOC_TYPE "SUBSTRB(:LOC_TYPE,1,1)",
CLEAR_IND "SUBSTRB(:CLEAR_IND,1,1)",
TAXABLE_IND "SUBSTRB(:TAXABLE_IND,1,1)",
LOCAL_ITEM_DESC "SUBSTRB(:LOCAL_ITEM_DESC,1,250)",
LOCAL_SHORT_DESC "SUBSTRB(:LOCAL_SHORT_DESC,1,120)",
STORE_ORD_MULT "SUBSTRB(:STORE_ORD_MULT,1,1)",
STATUS_UPDATE_DATE sysdate,
STATUS "SUBSTRB(:STATUS,1,1)",
STORE_PRICE_IND "SUBSTRB(:STORE_PRICE_IND,1,1)",
RPM_IND "SUBSTRB(:RPM_IND,1,1)",
EXT_UIN_IND "SUBSTRB(:EXT_UIN_IND,1,1)",
RANGED_IND "SUBSTRB(:RANGED_IND,1,1)",
PRIMARY_SUPP "TO_NUMBER(:PRIMARY_SUPP)", -- The Error is coming here
PRIMARY_CNTRY "SUBSTRB(:PRIMARY_CNTRY,1,3)"
)
拒绝 - 表 DMF.MIG_ITEM_LC 的 PRIMARY_SUPP 列出错。 ORA-01722: 无效号码
如果我写给它常量,它会成功加载。
可能是什么问题?
【问题讨论】:
-
数据库中的PRIMARY_SUPP列是如何定义的?它是在所有行上失败还是在某些行上失败?数据是否包含不可见的控制字符?哦,请确保您的描述列中没有一个包含您的分隔符,因为这会将所有内容都放在一个列中。
-
在数据库中定义为NUMBER。并且没有任何描述有分隔符。当我给它一个常量 PRIMARY_SUPP CONSTANT '2' 时,它会被加载。但不是数据文件中的值
标签: sql oracle loading sql-loader