设为首页 - 加入收藏 PHP编程网 - PHP站长网 (http://www.52php.cn)- 电商,百科,编程,业界,移动互联,5G,云计算,站长网!
热搜: java 配置 原来 google
当前位置: 首页 > 站长百科 > 正文

oracle – 使用utf8的SQL Loader

发布时间:2021-05-16 02:16 所属栏目:[站长百科] 来源:网络整理
导读:使用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) 我的

使用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抛出了错误的异常,(实际:2624,最大值:3500). 2624小于3500.

解决方法

所有数据文件(UFT-16除外)的默认长度语义是字节.因此,在您的情况下,您有一个3500字节的CHAR而不是字符.您的文件中有一些多字节字符,因此2624个字符使用超过3500个字节,因此(误导性)消息.

您可以使用字符长度语义对此进行排序

在控制文件中更改此行

characterset UTF8

对此

characterset UTF8 length semantics char

它将用于CHAR字段(以及其他一些字符)的字符 – 与设置表的方式相同,因此每个字符最多包含3500个字符.

有关详细信息,请参阅Character Length Semantics的“实用程序指南”

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

推荐文章
热点阅读