oracle+修改实例字符集,修改 Oracle 数据库实例字符集

Ø简介

在 Oracle中创建数据库实例后,就会有对应使用的编码字符集。当我们设置的字符集与操作系统或者其他软件字符集不一致时,就会出现中文乱码等情况。此时我们就需要修改 Oracle数据库使用的字符集,下面是修改 Oracle字符集的具体步骤:

Oracle一般使用以下两种字符集:

b34f19c54c3fedcb29856561a84b89a4.png

1.SIMPLIFIED CHINESE_CHINA.ZHS16GBK

GBK 16-bit Simplified Chinese能够支持繁体中文,并且按照2个字符长度存储一个汉字。

2.SIMPLIFIED CHINESE_CHINA.AL32UTF8

多字节存储,1个汉字(简体、繁体)有时采用3个字符长度存储。Oracle支持字符集的更改,但是UTF8是Oracle中最大的字符集,也就是说UTF8是ZHS16GBK的严格超集。

首先,我们查看数据库实例所使用的字符集:

sqlplus "/as sysdba"

select userenv('language') from dual;

9ad8d7ac9bae943b7e744b87a4a8669c.png

当前(orcl)使用的是 CHINESE_CHINA.AL32UTF8字符集,下面进行修改:

1.运行CMD

2.进入指定数据库实例

set ORACLE_SID=ORCL#"ORCL"表示需要修改字符集的数据库实例名

3.输入命令

sqlplus /nolog

4.登录数据库

conn /as sysdba

5.关闭数据库实例

SHUTDOWN IMMEDIATE;

ab824a2dd6ea09bfbdc506c24118d569.png

6.打开控制文件

STARTUP MOUNT;

1be65007ac2a56c79566e7077f65a2ec.png

7.开启限制会话模式

ALTER SYSTEM ENABLE RESTRICTED SESSION;

--ALTER SYSTEM DISABLE RESTRICTED SESSION;#取消限制会话模式

8.设定job队列可以启动的进程数

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

说明:JOB_QUEUE_PROCESSES=0,则DBMS_JOB作业和Oracle Scheduler作业将不会在实例上运行。参考:

9.禁用队列监视器协调器

ALTER SYSTEM SET AQ_TM_PROCESSES=0;

10.修改并打开数据库

ALTER DATABASE OPEN;

11.修改数据库字符集

ALTER DATABASE CHARACTER SET ZHS16GBK;

当提示我们:新字符集必须为旧字符集的超集合,使用以下命令:

ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;

1a935fce30c752e0ceb0c2db3ff91d19.png

12.查看参数列表

select * from v$nls_parameters;

557d3cfa3a610edd9d7da98f9af6470b.png

可以看到,此时已经改为了"ZHS16GBK"字符集。

13.设置完成后,关闭数据库

SHUTDOWN IMMEDIATE;

14.再次打开数据库

STARTUP OPEN;

b5990716318f5875f55760ba3f428bd7.png

15.这时我们再使用之前的方式查看字符集

select userenv('language') from dual;

483169f716648a960f76bea96508f7b6.png

OK,ORLC数据库的字符集就改为了"CHINESE_CHINA.ZHS16GBK"。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值