gpt4 book ai didi

oracle - 使用 Oracle SQL Loader (sqlldr) 加载 Unicode 字符会导致问号

转载 作者:行者123 更新时间:2023-12-02 01:16:58 25 4
gpt4 key购买 nike

我正在尝试使用 SQL Loader 将本地化字符串从 unicode(UTF8 编码)csv 加载到 Oracle 数据库中。我已经尝试了各种组合,但似乎没有给我带来我正在寻找的结果,即特殊的希腊字符(如 (Δ))不会转换为 Δ 或 ¿。

我的表定义如下所示:

CREATE TABLE "GLOBALIZATIONRESOURCE"
(
"RESOURCETYPE" VARCHAR2(255 CHAR) NOT NULL ENABLE,
"CULTURE" VARCHAR2(20 CHAR) NOT NULL ENABLE,
"KEY" VARCHAR2(128 CHAR) NOT NULL ENABLE,
"VALUE" VARCHAR2(2048 CHAR),
"DESCRIPTION" VARCHAR2(512 CHAR),
CONSTRAINT "PK_GLOBALIZATIONRESOURCE" PRIMARY KEY ("RESOURCETYPE","CULTURE","KEY") USING INDEX TABLESPACE REPSPACE_IX ENABLE
)
TABLESPACE REPSPACE;

我已经在我的控制文件中尝试了以下配置(实际上是我能想到的所有排列)

load data
TRUNCATE
INTO TABLE "GLOBALIZATIONRESOURCE"
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(
"RESOURCETYPE" CHAR(255),
"CULTURE" CHAR(20),
"KEY" CHAR(128),
"VALUE" CHAR(2048),
"DESCRIPTION" CHAR(512)
)
<小时/>
load data
CHARACTERSET UTF8
TRUNCATE
INTO TABLE "GLOBALIZATIONRESOURCE"
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(
"RESOURCETYPE" CHAR(255),
"CULTURE" CHAR(20),
"KEY" CHAR(128),
"VALUE" CHAR(2048),
"DESCRIPTION" CHAR(512)
)
<小时/>
load data
CHARACTERSET UTF16
TRUNCATE
INTO TABLE "GLOBALIZATIONRESOURCE"
FIELDS TERMINATED BY X'002c' OPTIONALLY ENCLOSED BY X'0022'
TRAILING NULLCOLS
(
"RESOURCETYPE" CHAR(255),
"CULTURE" CHAR(20),
"KEY" CHAR(128),
"VALUE" CHAR(2048),
"DESCRIPTION" CHAR(512)
)

使用前两个选项,unicode 字符不会被编码,只是显示为颠倒的问号。

如果我选择最后一个选项 UTF16,那么即使我的字段中的所有数据都比指定的长度短得多,我也会收到以下错误。

Field in data file exceeds maximum length

似乎 ctl 文件配置的每种可能的组合(甚至将字节顺序设置为小和大)都无法正常工作。有人可以给出一个正确从 csv 加载 unicode 数据的配置示例(表结构和 CTL 文件)吗?任何帮助将不胜感激。

注意:我已经去过http://docs.oracle.com/cd/B19306_01/server.102/b14215/ldr_concepts.htm , http://docs.oracle.com/cd/B10501_01/server.920/a96652/ch10.htmhttp://docs.oracle.com/cd/B10501_01/server.920/a96652/ch10.htm

最佳答案

我遇到了同样的问题并通过以下步骤解决了 -

  1. 在 Notepad++ 中打开数据文件,转到“编码”下拉列表并选择 UTF8 编码并保存文件。
  2. 在CTL文件中使用CHARACTERSET UTF8,然后上传数据。

关于oracle - 使用 Oracle SQL Loader (sqlldr) 加载 Unicode 字符会导致问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8405956/

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