通過
SQL> select * from nls_database_parameters;
來檢查字符集參數
設置:
SQL> 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 ZHS16GBK;
SQL>update props$ set value$='ZHS16GBK' where name='NLS_NCHAR_CHARACTERSET';
SQL>commit;
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
NLS_CHARACTERSET是數據庫字符集,NLS_NCHAR_CHARACTERSET是國家字符集
ORACLE中有兩大類字符型數據,VARCHAR2是按照數據庫字符集來存儲數據。而NVARCHAR2是按照國家字符集存儲數據的。同樣,CHAR和NCHAR也一樣,一是數據庫字符符,一是國家字符集。
客戶端設置環境變量:
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK