AL32UTF8轉成ZHS16GBKsql
cmd中輸入「SQLPLUS」,回車,而後再在用戶名下輸入「SYS AS SYSDBA」,回車數據庫
密碼後面輸入「SYS」,回車。這裏輸入密碼是隱式的,因此看不見,只要輸入就行了。服務器
這裏輸入SQL查詢語句,select * from nls_database_parameters where parameter='NLS_CHARACTERSET'; 查看當前數據庫字符集。session
此時數據庫服務器已啓動,則先執行SHUTDOWN IMMEDIATE命令關閉數據庫服務器,而後執行如下命令:注:每條sql語句都會有相應的提示,請輸入時務必仔細閱讀和等待oracle
SQL>STARTUP MOUNT; SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION; SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0; SQL>ALTER DATABASE OPEN; SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK; //跳過超子集檢測 SQL>ALTER DATABASE national CHARACTER SET INTERNAL ZHS16GBK; 這一行不起做用,執行後出錯ORA-00933: SQL 命令未正確結束,不過執行上一行命令已經生效,其餘文章裏未提到本行。
繼續運行:spa
SQL>SHUTDOWN IMMEDIATE; SQL>STARTUP
到這裏就完成了字符集從AL32UTF8轉成ZHS16GBK了。rest
=================================================code
ZHS16GBK轉成 AL32UTF8blog
SQL> select userenv('language') from dual;
這也能夠查詢oracle的字符集。cmd
開始修改字符集:須要先關閉數據庫 SHUTDOWN IMMEDIATE
SQL> startup mount SQL> alter system enable restricted session; SQL> alter system set job_queue_processes=0; SQL> alter system set aq_tm_processes=0; SQL> alter database open; SQL> ALTER DATABASE character set INTERNAL_USE AL32UTF8; SQL> shutdown immediate SQL> startup
SQL> select userenv('language') from dual;
繼續使用 select userenv('language') from dual;查詢oracle字符集。