【发布时间】:2012-08-16 01:27:09
【问题描述】:
使用 SQL*Loader 加载日语数据时出现以下错误。我的数据库是 UTF8(NLS 参数),我的操作系统支持 UTF8。
Record 5: Rejected - Error on table ACTIVITY_FACT, column METADATA.
ORA-12899: value too large for column METADATA (actual: 2624, maximum: 3500)
我的控制文件:
load data
characterset UTF8
infile '../tab_files/activity_fact.csv' "STR ';'"
APPEND
into tableactivity_fact
fields terminated by ',' optionally enclosed by '~'
TRAILING NULLCOLS
(metadata CHAR(3500))
我的桌子
create table actvuty_facr{
metadata varchar2(3500 char)
}
为什么 SQL Loader 会抛出错误的异常,(actual: 2624, maximum: 3500)。 2624小于3500。
【问题讨论】:
-
UTF8 是一个多字节字符集。 2624 个字符理论上可以是 10,496 个字节。我的猜测是在 SQL*Loader 中
char(3500)是 byte 语义。尝试将其提高到 14,000。 -
嗨,本,我也试过 char(14000)。但是没有用。
-
我想你的情况和我一样:stackoverflow.com/q/12393579/706012
标签: oracle utf-8 sql-loader