用SQL Loader 遇到的几个问题:

来源:互联网 发布:avi视频转换软件 编辑:程序博客网 时间:2024/05/17 02:50
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??
原创粉丝点击