天天看點

(原創)在pl/sql developer中檢視package或表結構報ora-01460的解決方法

今天有同僚報有個資料庫不能用pl/sql developer檢視package或表結構。

 開始以為是伺服器端與用戶端的字元集不一緻所至。

檢視資料庫的字元集為ZHS32GB18030

select * from V$NLS_PARAMETERS t where t.PARAMETER LIKE '%CHARACTERSET%';

PARAMETER                                      VALUE

NLS_CHARACTERSET                      ZHS132GB18030

NLS_NCHAR_CHARACTERSET        AL16UTF16

設定用戶端的NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS132GB18030

這樣設定之後錯誤依舊。

在我的記憶中ZHS32GB18030每一個字元應該是4個位元組

馬上檢視pl/sql developer的help-->support info拖到最後的Character Sets節,發現Character size: 3 byte(s)

于是在指令行啟動pl/sql developer,強行使pl/sql dev使用4位元組/字元:plsqldev.exe BPC=4  注:BPC (bytes per character).

終于問題解決。

結論:

當資料庫的字型集為ZHS32GB18030時,用pl/sql developer檢視package或表結構會報ora-01460

這應該是pl/sql developer的一個BUG,解決方法:在啟動pl/sql developer時加上一個參數BPC=4。如:plsqldev.exe BPC=4