暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

修改Oracle数据库字符集

原创 e切依燃 2022-05-15
674

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; 复制代码
复制

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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论