• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

oracle查看字符集后修改oracle服务端和客户端字符集的步骤

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1.oracle server端字符集查询

复制代码 代码如下:

select userenv('language') from dual;

server字符集修改

将数据库启动到RESTRICTED模式下做字符集更改:

复制代码 代码如下:

SQL>conn /as sysdba

SQL>shutdown immediate;  

SQL>startup mount

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 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;  

SQL>select * from v$nls_parameters; 

重启检查是否更改完成:

复制代码 代码如下:

SQL>shutdown immediate;

SQL>startup

SQL>select * from v$nls_parameters;

我们看到这个过程和之前ALTER DATABASE CHARACTER SET操作的内部过程是完全相同的,也就是说INTERNAL_USE提供的帮助就是使Oracle数据库绕过了子集与超集的校验

这一方法在某些方面是有用处的,比如测试;应用于产品环境时大家应该小心,可能会有一些意外的问题。

2.oracle client端字符集修改

复制代码 代码如下:

$echo$NLS_LANG

client字符集修改:  

 在 /home/oracle与 /root用户目录下的.bash_profile中添加或修改 export NLS_LANG="AMERICAN_AMERICA.UTF8" 语句

 关闭当前ssh窗口。

注意:NLS_LANG变量一定要配置正确否则会引起sqlplus失效。

3.修改数据库字符集为UTF-8

1.以DBA登录

2.执行转换语句:

复制代码 代码如下:

SHUTDOWN IMMEDIATE;

STARTUP MOUNT EXCLUSIVE;

ALTER SYSTEM ENABLE RESTRICTED SESSION;

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

ALTER SYSTEM SET AQ_TM_PROCESSES=0;

ALTER DATABASE OPEN;

ALTER DATABASE NATIONAL CHARACTER SET UTF8;

SHUTDOWN IMMEDIATE;

STARTUP;

注意:如果没有大对象,在使用过程中进行语言转换没有什么影响!

可能会出现ORA-12717:CANNOT ALTER DATABASE NATIONAL CHARACTER SET WHEN NCLOBDATAEXISTS, 解决这个问题的方法

利用INTERNAL_USE 关键字修改区域设置

复制代码 代码如下:

ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
postgresql影子用户实践场景分析发布时间:2022-02-08
下一篇:
三种常用的MySQL 数据类型发布时间:2022-02-08
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap