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"