用SQL Loader 遇到的几个问题:

1。 no terminator found after TERMINATED and ENCLOSED field
可能是每条记录的分隔符有问题,和control file 声明的不一致。

2。SQL*Loader-510: Physical record in data file (products_fs.dat) is longer
than the maximum(1048576)
可能是data的长度(fields)多于titile column.

3.Record 37: Rejected - Error on table AGG_PRODUCT_LOADER, column DESCRIPTION.
Field in data file exceeds maximum length
可能是某个field的长度大于数据库里要求的长度。
下面是这样一个例子:
如果 description char(4000) "SUBSTRB(TRIM(:description), 1, 250)", 换成
description char(250) "SUBSTRB(TRIM(:description), 1, 250)", 就会出现3的错误。
估计char(4000)是cache之类,如果数据过大,根本无法加载,也就没法substr,所以,把cache改大就好了。不知道这样理解对不对?

(注意最大是4000)
OPTIONS (skip=1, errors=99999)
load data
--CHARACTERSET UTF16
infile 'products_fs.dat' "str '>>>/n'"
append
--replace
into table product_loader
fields terminated by ',' optionally enclosed by '|||'
trailing nullcols
(
id FILLER,
source_name "TRIM(:source_name)",
product_id "TRIM(:product_id)",
url "TRIM(:url)",
source_org_id "TRIM(:source_org_id)",
description char(4000) "SUBSTRB(TRIM(:description), 1, 250)",
product_image_url "TRIM(:product_image_url)",
product_image_name "TRIM(:product_image_name)",
model_num char(3000) "SUBSTRB(TRIM(:model_num),1,50)",
record_status "TRIM(:record_status)",
source_category char(255) "SUBSTRB(TRIM(:source_category), 1, 255)",
key_specification char(4000) "SUBSTRB(TRIM(:key_specification), 1, 3000)",
certification char(4000) "SUBSTRB(TRIM(:certification), 1, 3000)"
)

4。另外要注意source data的encoding 是什么类型。 utf-8??
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值