数据导出&导入(8i - > 10g)和ORA-01461错误

时间:2011-07-19 01:26:34

标签: oracle

早上好!

我需要将数据从Oracle 8i(企业版版本8.1.6.0.0)移动到Oracle 10g(企业版版本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)列中出现此错误。因为我将varchar2(4000)列的数据缩短为像"abcde"这样的几个字节后才成功导入。

不同的字符集会导致不同长度的数据吗? 请帮帮我。

永远,谢谢。

- 更多,我正在使用SQLGate,它可以访问8i,10g版本(据我所知)。 当然,我尝试导出其他格式的数据(dbf,txt,csv,sql,mbd),但它们更糟糕。 dbf,txt,csv在每条记录上都出错。它说某些专栏没有任何价值,但它们显然具有价值。

1 个答案:

答案 0 :(得分:1)

是的,UTF8是一个多字节字符集。这意味着一些字符由最多4个字节的数据组成。 KO16KSC5601是韩文单字节字符集,因此字符只能包含一个字节。

大多数(全部?)韩文字符将位于UTF8字符集的基本0-127位置之外,因此我预计数据大小会大幅增加。查看VSIZE函数并将其用于某些示例数据,以了解您的情况会有所增加。