Oracle XE 执行安装程序后,很简单的默认为 SIMPLIFIED CHINESE_CHINA.AL32UTF8 ,通过如下方法可以修改成为 ZHS16GBK 。
客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。客户端的字符集设置存在多个地方: session>环境变量>注册表>参数文件
字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American。
查看数据库字符集
/* 服务器字符集 */ select * from nls_database_parameters;--其来源于props$ /* 客户端环境字符集 */ select * from nls_instance_parameters;--其来源于v$parameter /* 会话环境字符集 */ select * from nls_session_parameters;--其来源于v$nls_parameters
设置服务器字符集
/* 1 登录sys用户 */ SQL>connect sys/manager as sysdba; /* 2 关闭数据库 */ SQL>shutdown immediate; 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 /* 3 数据库装载 */ SQL>startup mount; ORACLE 例程已经启动。 Total System Global Area 1068937216 bytes Fixed Size 2260048 bytes Variable Size 788530096 bytes Database Buffers 272629760 bytes Redo Buffers 5517312 bytes 数据库装载完毕。 /* 4. 数据字符集修改 */ 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; 数据库已更改。 /* 5. 重启数据库 */ SQL>shutdown immediate; 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL>startup; ORACLE 例程已经启动。 Total System Global Area 1068937216 bytes Fixed Size 2260048 bytes Variable Size 788530096 bytes Database Buffers 272629760 bytes Redo Buffers 5517312 bytes 数据库装载完毕。 数据库已经打开。