欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle xe 字符集修改成 ZHS16GBK 的方法

程序员文章站 2023-10-10 15:39:09
Oracle XE 执行安装程序后,很简单的默认为 SIMPLIFIED CHINESE_CHINA.AL32UTF8 ,通过如下方法可以修改成为 ZHS16GBK 。 客户端的...

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
数据库装载完毕。
数据库已经打开。