修改Oracle数据库字符集

1.Oracle server端的字符集查询

select userenv('language') from dual;复制代码

其中NLS_CHARACTERSET 为server端字符集 NLS_LANGUAGE 为 server端字符显示形式  

2.server端字符集修改

SQL> conn /as sysdba 
Connected. 
SQL> shutdown immediate; 
Database closed. 
Database dismounted. 
ORACLE instance shut down. 
SQL> startup mount 
ORACLE instance started. 
Total System Global Area  236000356 bytes 
Fixed Size                   451684 bytes 
Variable Size             201326592 bytes 
Database Buffers           33554432 bytes 
Redo Buffers                 667648 bytes 
Database mounted. 

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; 
System altered. 

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; 
System altered. 

SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0; 
System altered. 

SQL> alter database open; 
Database altered. 

SQL> ALTER DATABASE CHARACTER SET ZHS16GBK; 
ALTER DATABASE CHARACTER SET ZHS16GBK 
* 
ERROR at line 1: 
ORA-12712: new character set must be a superset of old character set 
复制代码

提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改: 

SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; 
Database altered. 
SQL> select * from v$nls_parameters; 
略 
19 rows selected. 复制代码

重启检查是否更改完成: 

SQL> shutdownimmediate; 
Database closed. 
Database dismounted. 
ORACLE instance shut down. 
SQL> startup ORACLE instance started. 
Total System Global Area  236000356 bytes 
Fixed Size        451684 bytes 
Variable Size     201326592 bytes 
Database Buffers  33554432 bytes 
Redo Buffers       667648 bytes 
Database mounted. 
Database opened. 
SQL> select * from v$nls_parameters; 复制代码

字符集修改完成,但是非常不建议在这种在数据库上修改字符集,非常容易出问题。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值