2011-07-19 96 views
1

早上好!數據導出和導入(8i - > 10g)和ORA-01461錯誤

我需要將數據從Oracle 8i(企業版版本8.1.6.0.0)移動到Oracle 10g(企業版版本10.2.0.3.0 - 64bi)。 (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

是的,UTF8是一個多字節字符集。這意味着某些字符由最多4個字節的數據組成。 KO16KSC5601是韓文單字節字符集,因此字符只能由單個字節組成。

大多數(所有?)韓文字符將超出UTF8字符集的基本0-127位置,所以我期望數據大小會有相當大的增加。查看VSIZE函數,並將其用於一些示例數據,以瞭解您的情況有所增加。

+0

UTF-8不是一個字符集! Unicode是一個字符集。 UTF-8只是一個可能的多字節字符* enconding *。 –