早上好!
我需要将数据从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在每条记录上都出错。它说某些专栏没有任何价值,但它们显然具有价值。
答案 0 :(得分:1)
是的,UTF8是一个多字节字符集。这意味着一些字符由最多4个字节的数据组成。 KO16KSC5601是韩文单字节字符集,因此字符只能包含一个字节。
大多数(全部?)韩文字符将位于UTF8字符集的基本0-127位置之外,因此我预计数据大小会大幅增加。查看VSIZE函数并将其用于某些示例数据,以了解您的情况会有所增加。