日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IMP出现的ORA-01401错误可能和字符集有关(转载)

發布時間:2023/12/13 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IMP出现的ORA-01401错误可能和字符集有关(转载) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天在論壇上,看到有一位朋友問

“我備份數據庫后在其他的機器上再導入這個數據庫,出現如下錯誤,并只能導
入部分數據。
IMP-00019: row rejected due to ORACLE error 1401
IMP-00003: ORACLE error 1401 encountered
ORA-01401: inserted value too large for column
我裝的是ORACLE8.1.7,最后出現column 1 66790 的提示。
該怎么解決?”

我第一想到,IMP會自動創建表,因此,和表字段長度定義不一致顯然無關。

那么可能可以解釋的就是,字符集的不一致,導致相同的字符,存儲空間需求不一致。

exp從一個single byte字符集的數據庫,而imp的是一個多字符集的數據庫,就有可能出現這樣的問題。如WE8ISO8859P1->UTF8

證明如下:

我的數據庫采用WE8ISO8859P1字符集。

?? 我們來看看,你好這個字符的存儲字節情況。

?? SQL> select dump('你好',16) from dual;

?? DUMP('拿好',16)
?? -------------------------
?? Typ=96 Len=4: c4,e3,ba,c3

*需要4個字節

?而UTF8情況下呢,

?SQL> select dump(convert('你好','UTF8','WE8ISO8859P1'),16) from dual;

DUMP(CONVERT('拿好','UTF8','WE8ISO88
------------------------------------
Typ=1 Len=8: c3,84,c3,a3,c2,ba,c3,83?

*需要8個字節

因此,當DUMP文件內容被IMP到UTF8的表中,就需要8個字節,使原來的一倍,那么顯然就會導致ORA-01401: inserted value too large for column的錯誤。

轉載于:https://www.cnblogs.com/firstyi/archive/2007/10/17/927562.html

總結

以上是生活随笔為你收集整理的IMP出现的ORA-01401错误可能和字符集有关(转载)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。