源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-09-20 09:01 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:oracle查看字符集后修改oracle服务端和客户端字符集的步骤
1.[b]oracle server端字符集查询 [/b]
[u]复制代码[/u] 代码如下:
select userenv('language') from dual;
[b]server字符集修改[/b]: 将数据库启动到RESTRICTED模式下做字符集更改:
[u]复制代码[/u] 代码如下:
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
提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:
[u]复制代码[/u] 代码如下:
SQL>ALTER DATABASE character set INTERNAL_USE ZHS16GBK;   SQL>select * from v$nls_parameters; 
重启检查是否更改完成:
[u]复制代码[/u] 代码如下:
SQL>shutdown immediate; SQL>startup SQL>select * from v$nls_parameters;
我们看到这个过程和之前ALTER DATABASE CHARACTER SET操作的内部过程是完全相同的,也就是说INTERNAL_USE提供的帮助就是使Oracle数据库绕过了子集与超集的校验 这一方法在某些方面是有用处的,比如测试;应用于产品环境时大家应该小心,可能会有一些意外的问题。 2.[b]oracle client端字符集修改[/b]
[u]复制代码[/u] 代码如下:
$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.执行转换语句:
[u]复制代码[/u] 代码如下:
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 关键字修改区域设置
[u]复制代码[/u] 代码如下:
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部