我的后台用的是oracle 使用的是生成ctl文件,通过调用该文件,使用sqlloader工具将数据导入数据库当中。
但是最近要导入数据的时候 会报Field in data file exceeds maximum length的错误。
  我看了一下,原来是因为sqlloader插入数据的时候,只要字段长度超过255字符就会报这样的错误。
 在网上查了一下,只要在指定字段后面 加上char(n) 注明了就行。 但是奇怪的是,我在两个不同机子上面使用了同样的方法,一个可以导入,一个不能导入。希望有大神能帮忙一下。具体这个方法要怎么使用,是不是如果我在写ctl文件,在上面加了一些配置语句就不可以了呢?
这个是简单的ctl文件,修改过后可以导入的:
load data
truncate
into table DWF_FUND
fields terminated by X'01'
TRAILING NULLCOLS
(
I_CODE  "trim(:I_CODE )",
A_TYPE  char(1000) "trim(:A_TYPE )",
M_TYPE  "trim(:M_TYPE )",
TRADE_ID  "trim(:TRADE_ID )",
GRPID  "trim(:GRPID )",
DATA_DATE  "trim(:DATA_DATE )",
ACCT_NO  "trim(:ACCT_NO )",
ACCT_NAME  "trim(:ACCT_NAME )",
ACCT_TYPE  "trim(:ACCT_TYPE )",
BRANCH_CODE  "trim(:BRANCH_CODE )",
OPP_NAME  "trim(:OPP_NAME )",
MGR_CODE  "trim(:MGR_CODE )",
ITEM_ID  "trim(:ITEM_ID )",
CURRENCY_CODE  "trim(:CURRENCY_CODE )",
COUPON_RATE  "trim(:COUPON_RATE )",
FACT_RATE  "trim(:FACT_RATE )",
BUY_CLPRICE  "trim(:BUY_CLPRICE )",
PAR_AMT  "trim(:PAR_AMT )",
CUR_ACCBAL  "trim(:CUR_ACCBAL )",
INTR_ACC  "trim(:INTR_ACC )",
CUR_INTR   "trim(:CUR_INTR  )",
INTR_ADJ  "trim(:INTR_ADJ )",
VALUE_ADJ  "trim(:VALUE_ADJ )",
INTR_NOT  "trim(:INTR_NOT )",
COUPON_METHOD  "trim(:COUPON_METHOD )",
OPEN_DT  "trim(:OPEN_DT )",
ISSUE_DT  "trim(:ISSUE_DT )",
MAT_DT  "trim(:MAT_DT )",
BUSI_TYPE  "trim(:BUSI_TYPE )"
)