Oracle 设置字符集

AL32UTF8字符集不是一种可(显示/输入)的语言字符集,是一种用于存储的字符集,支持全世界主要的文字语言编码。
AL32UTF8为ZHS16GBK的超集。


NLS_LANG应该设置成系统本身所使用的语言字符集,与数据库语言字符集进行转换。
1. 从AL32UTF8服务器将数据导出,导出前先设定 NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"。
2. 从ZHS16GBK服务器将数据导入,导入前先设定 NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"。


查看数据库字符集
SQL> select * from v$nls_parameters;
SQL> select userenv('language') from dual;


查看系统字符集
Windows:
cmd -> echo %NLS_LANG%
Linux:
$ locale


设置数据库字符集
SQL> conn /as sysdba;
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> alter system set nls_language = 'AMERICAN' scope = spfile;
SQL> alter system set nls_territory = 'AMERICA' scope = spfile;
SQL> shutdown immediate;
SQL> startup;


设置系统字符集
Windows:
我的电脑 -> 属性 -> 高级 -> 环境变量
NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
Linux:
$ export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"

你可能感兴趣的:(oracle)