如何修改Oracle的字符集
Oracle檢視字符集
SELECT * FROM NLS_DATABASE_PARAMETERS p where p.PARAMETER='NLS_CHARACTERSET';
SELECT USERENV('language') FROM DUAL;
1.首先以sysdba的身份登入上去 conn /as sysdba
sqlplus / as sysdba
2.關閉資料庫
SQL> shutdown immediate
3.以mount(掛載方式)開啟資料庫
SQL> startup mount
4.設定session
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
5.啟動資料庫
SQL> alter database open;
6.修改字符集
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;
可能會報錯,提示我們的字符集:新字符集必須為舊字符集的超集,跳過超集檢查做更改:
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
這條語句就可以了,TERNAL_USE提供的幫助就會使oracle繞過了子集與超集的驗證,這條語句和上面的語句內部操作時完全相同的。
7.關閉資料庫,重新啟動
SQL>shutdown immediate
SQL> startup
8、建議執行(可能使用impdp/expdp無法匯入)
原因:資料泵無法使用元資料API。通常,這是由於XSL樣式表未正確設定造成的。
SQL> execute sys.dbms_metadata_util.load_stylesheets;
————————————————
版權宣告:本文為CSDN博主「流沙Quicksand」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/gengzhy/article/details/122999989