Oracle --- ORA-01461:僅能綁定要插入 LONG 列的 LONG 值

問題描述:

在項目中向Oracle插入數據時報錯::ORA-01461: 僅能綁定要插入 LONG 列的 LONG 值。

這是因爲我的Oracle數據庫字符集爲32位編碼的字符集,所能存儲的漢字大大縮減。

 

解決辦法:

執行“select userenv('language') from dual;”查看字符集,顯示爲AL32UTF8,將其修改爲ZHS16GBK後問題解決。

 

Oracle 11g修改字符集爲ZHS16GBK方法:

1. cmd下,cd到oracle數據庫軟件的服務器端 如:D:\oraclexe\app\oracle\product\11.2.0\server\bin

2. 輸入set ORACLE_SID=你想進入的數據庫的那個sid,我的爲XE

3. 輸入 sqlplus /nolog

將數據庫啓動到RESTRICTED模式下做字符集更改: 

sysdba角色登錄Oracle:

conn /as sysdba

關閉數據庫:

shutdown immediate; 

 以mount打來數據庫:

 startup mount 

設置session :

ALTER SYSTEM ENABLE RESTRICTED SESSION;  
 
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; 

ALTER SYSTEM SET AQ_TM_PROCESSES=0; 

開啓數據庫:

alter database open; 

修改數據庫字符集爲ZHS16GBK:

ALTER DATABASE CHARACTER SET ZHS16GBK; 

 這時候會報錯:ORA-12712: new character set must be a superset of old character set ,提示我們新字符集必須爲舊字符集的超集,這時我們可以跳過超集的檢查做更改:

跳過超集檢查修改字符集:

ALTER DATABASE character set INTERNAL_USE ZHS16GBK; 

查看字符集是否被修改:

select * from v$nls_parameters; 

 重啓檢查是否更改完成: 

shutdown immediate; 

startup

select * from v$nls_parameters; 

 

 

 

參考文章:

調試經驗-ORA-01461: 僅能綁定要插入 LONG 列的 LONG 值

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章