通过
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