phi*_*bin 6 csv oracle unicode sql-loader
我正在尝试使用 SQL Loader 将本地化字符串从 unicode(UTF8 编码)csv 加载到 Oracle 数据库中。我已经尝试了各种组合,但似乎没有给我我正在寻找的结果,即有特殊的希腊字符,如 (\xce\x94) 不会转换为 \xc3\x8e\xe2\x80\ x9d 或 \xc2\xbf。
\n\n我的表定义如下所示:
\n\nCREATE TABLE "GLOBALIZATIONRESOURCE"\n(\n "RESOURCETYPE" VARCHAR2(255 CHAR) NOT NULL ENABLE,\n "CULTURE" VARCHAR2(20 CHAR) NOT NULL ENABLE,\n "KEY" VARCHAR2(128 CHAR) NOT NULL ENABLE,\n "VALUE" VARCHAR2(2048 CHAR),\n "DESCRIPTION" VARCHAR2(512 CHAR),\n CONSTRAINT "PK_GLOBALIZATIONRESOURCE" PRIMARY KEY ("RESOURCETYPE","CULTURE","KEY") USING INDEX TABLESPACE REPSPACE_IX ENABLE\n)\nTABLESPACE REPSPACE; \n
Run Code Online (Sandbox Code Playgroud)\n\n我已经在我的控制文件中尝试了以下配置(实际上是我能想到的每个排列)
\n\nload data\nTRUNCATE\nINTO TABLE "GLOBALIZATIONRESOURCE"\nFIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY \'"\'\nTRAILING NULLCOLS\n( \n "RESOURCETYPE" CHAR(255), \n "CULTURE" CHAR(20), \n "KEY" CHAR(128), \n "VALUE" CHAR(2048), \n "DESCRIPTION" CHAR(512)\n)\n
Run Code Online (Sandbox Code Playgroud)\n\nload data\nCHARACTERSET UTF8\nTRUNCATE\nINTO TABLE "GLOBALIZATIONRESOURCE"\nFIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY \'"\'\nTRAILING NULLCOLS\n( \n "RESOURCETYPE" CHAR(255), \n "CULTURE" CHAR(20), \n "KEY" CHAR(128), \n "VALUE" CHAR(2048), \n "DESCRIPTION" CHAR(512)\n)\n
Run Code Online (Sandbox Code Playgroud)\n\nload data\nCHARACTERSET UTF16\nTRUNCATE\nINTO TABLE "GLOBALIZATIONRESOURCE"\nFIELDS TERMINATED BY X\'002c\' OPTIONALLY ENCLOSED BY X\'0022\'\nTRAILING NULLCOLS\n( \n "RESOURCETYPE" CHAR(255), \n "CULTURE" CHAR(20), \n "KEY" CHAR(128), \n "VALUE" CHAR(2048), \n "DESCRIPTION" CHAR(512)\n)\n
Run Code Online (Sandbox Code Playgroud)\n\n使用前两个选项,unicode 字符不会被编码,只是显示为颠倒的问号。
\n\n如果我选择最后一个选项 UTF16,那么即使我的字段中的所有数据都比指定的长度短得多,我也会收到以下错误。
\n\nField in data file exceeds maximum length\n
Run Code Online (Sandbox Code Playgroud)\n\n似乎 ctl 文件配置的每种可能的组合(甚至将字节顺序设置为小和大)都无法正常工作。有人可以给出一个正确从 csv 加载 unicode 数据的配置示例(表结构和 CTL 文件)吗?任何帮助将不胜感激。
\n\n注意:我已经去过http://docs.oracle.com/cd/B19306_01/server.102/b14215/ldr_concepts.htm,http://docs.oracle.com/cd/B10501_01/server.920 /a96652/ch10.htm和http://docs.oracle.com/cd/B10501_01/server.920/a96652/ch10.htm。
\n小智 1
您必须确保以下字符集相同:
如果客户端字符集不同,oracle 将尝试执行到本机数据库字符集的字符转换,但这可能并不总是提供所需的结果。
归档时间: |
|
查看次数: |
49285 次 |
最近记录: |