windows下装的oracle,如何将字符集al32utf8改为zhs16gbk
版本:oracle10g环境:windowXP问题起源:oracle默认字符集为AL32UTF8,所有中文都被认为是3个字节一个汉字。解决方案:将AL32UTF8改为ZH...
版本:oracle10g
环境:windowXP
问题起源:oracle默认字符集为AL32UTF8,所有中文都被认为是3个字节一个汉字。
解决方案:将AL32UTF8改为ZHS16GBK。
遇到的问题:
我按照网上的解决方法依次执行以下语句:
SQL> conn sys/sys as sysdba;
SQL> shutdown immediate;
SQL> STARTUP MOUNT;
SQL> ALTER SESSION SET SQL_TRACE=TRUE;
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> Shutdown immediate;
SQL> startup;
但是在执行到改字符集的时候出现错误:
ALTER DATABASE CHARACTER SET ZHS16GBK
*
第 1 行出现错误:
ORA-12712: 新字符集必须为旧字符集的超集
在这种情况下如何修改字符集为ZHS16GBK?
(别告诉我重装ORACLE,代价很大的!) 展开
环境:windowXP
问题起源:oracle默认字符集为AL32UTF8,所有中文都被认为是3个字节一个汉字。
解决方案:将AL32UTF8改为ZHS16GBK。
遇到的问题:
我按照网上的解决方法依次执行以下语句:
SQL> conn sys/sys as sysdba;
SQL> shutdown immediate;
SQL> STARTUP MOUNT;
SQL> ALTER SESSION SET SQL_TRACE=TRUE;
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> Shutdown immediate;
SQL> startup;
但是在执行到改字符集的时候出现错误:
ALTER DATABASE CHARACTER SET ZHS16GBK
*
第 1 行出现错误:
ORA-12712: 新字符集必须为旧字符集的超集
在这种情况下如何修改字符集为ZHS16GBK?
(别告诉我重装ORACLE,代价很大的!) 展开
4个回答
展开全部
什么版本没说,是8i?如果是按下面操作
有一个配置文件名为dbappscfg.properties,修改该文件即可解决上述问题。这个文件的位置在$ORACLE_HOME\sysman\config目录下,用任何的文本编辑器打开该文件,在这个文件里面,找到这样一项,
# SQLPLUS_NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
去掉注释符#,同时将其修改为
SQLPLUS_NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
对于Windows操作系统,还需要修改一项,在文件中找到# SQLPLUS_SYSTEMROOT=c:\\WINNT40,去掉注释符,将其修改为你所在机器的操作系统主目录。如操作系统的主目录在D盘的Winnt下,则将其修改为
SQLPLUS_SYSTEMROOT=d:\\WINNT
9i可直接修改如下:
sqlplus直接进去,输入命令:
select value$ from props$ where name=' NLS_CHARACTERSET';
显示不是ZHS16GBK,就更改,默认的是:WE8ISO8859p1
更改命令:
update props$ set value$='ZHS16GBK' where name='NLS_CHARACTERSET';
重启生效
楼主玩我,给了8i和9i后才告诉是10G
10g修改如下:
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
set nls_lang = AMERICAN_AMERICA.ZHS16GBK
有一个配置文件名为dbappscfg.properties,修改该文件即可解决上述问题。这个文件的位置在$ORACLE_HOME\sysman\config目录下,用任何的文本编辑器打开该文件,在这个文件里面,找到这样一项,
# SQLPLUS_NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
去掉注释符#,同时将其修改为
SQLPLUS_NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
对于Windows操作系统,还需要修改一项,在文件中找到# SQLPLUS_SYSTEMROOT=c:\\WINNT40,去掉注释符,将其修改为你所在机器的操作系统主目录。如操作系统的主目录在D盘的Winnt下,则将其修改为
SQLPLUS_SYSTEMROOT=d:\\WINNT
9i可直接修改如下:
sqlplus直接进去,输入命令:
select value$ from props$ where name=' NLS_CHARACTERSET';
显示不是ZHS16GBK,就更改,默认的是:WE8ISO8859p1
更改命令:
update props$ set value$='ZHS16GBK' where name='NLS_CHARACTERSET';
重启生效
楼主玩我,给了8i和9i后才告诉是10G
10g修改如下:
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
set nls_lang = AMERICAN_AMERICA.ZHS16GBK
展开全部
这么着修改:
有一个配置文件名为dbappscfg.properties,修改该文件即可解决上述问题。这个文件的位置在$ORACLE_HOME\sysman\config目录下,用任何的文本编辑器打开该文件,在这个文件里面,找到这样一项
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
set nls_lang = AMERICAN_AMERICA.ZHS16GBK
有一个配置文件名为dbappscfg.properties,修改该文件即可解决上述问题。这个文件的位置在$ORACLE_HOME\sysman\config目录下,用任何的文本编辑器打开该文件,在这个文件里面,找到这样一项
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
set nls_lang = AMERICAN_AMERICA.ZHS16GBK
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议重新安装,安装的过程中有设置字符集的页面。你现在变更,在数据库中是没办法变更过来的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2008-11-08 · 知道合伙人教育行家
关注
展开全部
不会啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询