Linux 下更改 oracle 客户端字符集和服务端字符集

发布于 2024-11-15 20:14:01 字数 2239 浏览 2 评论 0

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;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

姜生凉生

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

玍銹的英雄夢

文章 0 评论 0

我不会写诗

文章 0 评论 0

十六岁半

文章 0 评论 0

浸婚纱

文章 0 评论 0

qq_kJ6XkX

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文