早上好!
我需要将数据从Oracle 8i(Enterprise Edition Release 8.1.6.0.0)移动到Oracle 10g(Enterprise Edition Release 10.2.0.3.0 - 64bi)。
每个NLS_CHARACTERSET是KO16KSC5601(8i)和UTF8(10g)。
我将数据导出为Excel文件并尝试导入。但我在“一些”数据中遇到了ORA-01461: can bind a LONG value only for insert into a LONG column。
此错误似乎发生在varchar2(4000)列中。因为我像"abcde"一样把varchar2(4000)列的数据缩短到几个字节后,导入成功了。
不同的字符集会导致不同的数据长度吗?请帮帮我。
一如既往,谢谢。
--更多信息,我使用的是SQLGate,它可以访问8i和10g版本(据我所知)。当然,我也尝试过导出数据的其他格式(dbf、txt、csv、sql、mbd),但它们都很糟糕。txt,csv在每条记录上都会出错。它说某些列没有值,但它们很可能有值。
发布于 2011-07-19 10:14:04
是的,UTF8是一个多字节字符集。这意味着有些字符最多由4个字节的数据组成。KO16KSC5601是朝鲜语单字节字符集,因此一个字符只能由一个字节组成。
大多数(全部?)朝鲜语字符将超出UTF8字符集的基本0-127位置,因此我预计数据大小会有相当大的增长。查看VSIZE函数并在一些样本数据上使用它,以了解您的情况下的增长情况。
https://stackoverflow.com/questions/6741337
复制相似问题