gpt4 book ai didi

oracle - 使用 utf8 的 SQL 加载器

转载 作者:行者123 更新时间:2023-12-04 14:47:55 26 4
gpt4 key购买 nike

使用 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))

我的 table
create table actvuty_facr{
metadata varchar2(3500 char)
}

为什么 SQL Loader 会抛出错误的异常, (actual: 2624, maximum: 3500) . 2624 小于 3500。

最佳答案

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

您可以使用字符长度语义来解决这个问题

更改控制文件中的这一行

characterset UTF8

对此
characterset UTF8 length semantics char

它将处理 CHAR 字段(和其他一些)的字符 - 与您设置表格的方式相同,因此 3500 个字符,每个字符最多四个字节。

请参阅 Character Length Semantics 上的实用程序指南想要查询更多的信息

关于oracle - 使用 utf8 的 SQL 加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11979495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com