Oracle 11g for Win Server 2008 R2 (64) 更改server端字符集

alongines 2011-12-15 08:39:19
各位帮帮看个问题 Oracle 11g for Win Server 2008 R2 (64)
服务器端字符集是
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.AL32UTF8

客户端 和 dmp 字符集都是 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
怎么将 服务器端的 字符集 改成 CHINESE_CHINA.ZHS16GBK ?

我在网上找了这方面的资料,
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 INTERNAL_USE UTF8;
SHUTDOWN immediate;
startup;


我在改的过程中,在“ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;”的时候,出现错误提示:
ERROR 位于第 1 行:
ORA-12714: 指定的国家字符集无效
” 。郁闷。。。

哪位大侠愿意帮下,成功了,追加分数! 直接在网上贴无用资料的请不要费事了,我要的是能解决问题的答案。

...全文
514 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
alongines 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yixilan 的回复:]
悲催了。。。没帮上你的忙。
[/Quote]

没事 已经解决了。其实都不知道咋解决的。。。。

numenhuangsvrmgrl>shutdown immediate;
svrmgrl>startup mount;
svrmgrl>alter system enable restricted session;
svrmgrl>alter system set job_queue_processes=0;
svrmgrl>alter database open;

svrmgrl>alter database character set ZHS16GBK;
svrmgrl>alter database national character set ZHS16GBK;
这里如果遇到superset的问题,则可以用这两句来代替:
alter database character set set INTERNAL_USE ZHS16GBK;
alter database national character set INTERNAL_USE ZHS16GBK;

svrmgrl>shutdown immediate;
svrmgrl>startup;
yixilan 2011-12-16
  • 打赏
  • 举报
回复
悲催了。。。没帮上你的忙。
alongines 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yixilan 的回复:]
引用楼主 zhanggnol 的回复:
我在改的过程中,在“ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;”的时候,出现错误提示:
“ERROR 位于第 1 行:
ORA-12714: 指定的国家字符集无效” 。郁闷。。。
啊。。。知道了。。。
你先把服务器的character 设置成UTF8,然后再去改NATIONAL ……
[/Quote]

  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;
  SQL>ALTER DATABASE national CHARACTER SET ZHS16GBK;  SQL>SHUTDOWN IMMEDIATE;
  SQL>STARTUP


我执行的上面的语句,
SQL>ALTER DATABASE CHARACTER SET ZHS16GBK; 这步的时候,提示:新字符集必须为旧字符集的超集。
我也按照网上说的,忽略,继续执行   SQL>ALTER DATABASE national CHARACTER SET ZHS16GBK;,网上说的这步能直接执行成功,但是我这边的服务器上还是提示:“ERROR 位于第 1 行:
ORA-12714: 指定的国家字符集无效”。。。。
yixilan 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhanggnol 的回复:]
我在改的过程中,在“ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;”的时候,出现错误提示:
“ERROR 位于第 1 行:
ORA-12714: 指定的国家字符集无效” 。郁闷。。。[/Quote]
啊。。。知道了。。。
你先把服务器的character 设置成UTF8,然后再去改NATIONAL CHARACTER。就是,先执行:
SQL> alter database character set UTF8;
alter database character set UTF8
ORA-12712: new character set must be a superset of old character set --忽略该错然后再执行:
SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE UTF8;
yixilan 2011-12-16
  • 打赏
  • 举报
回复
把INTERNAL_USE 去掉不行么?

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧