如何修改Oracle 10g的字符集
答案:2 悬赏:50 手机版
解决时间 2021-02-25 23:25
- 提问者网友:兔牙战士
- 2021-02-25 01:13
如何修改Oracle 10g的字符集
最佳答案
- 五星知识达人网友:逐風
- 2021-02-25 01:28
$sqlplus /nolog
SQL>conn / as sysdba
若此时数据库服务器已启动,则先执行 SHUTDOWN IMMEDIATE 命
令关闭数据库服务器,然后执行以下命令:
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
ERROR at line 1:
ORA-12721: operation cannot execute when other sessions are active
或
ORA-12712: new character set must be a superset of old character set
若出现上面的错误,使用下面的办法进行修改,使用INTERNAL_USE可以跳过超集的检查:
SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP
修改完后查看:
select * from nls_database_parameters where parameter like '%SET%';
SQL>conn / as sysdba
若此时数据库服务器已启动,则先执行 SHUTDOWN IMMEDIATE 命
令关闭数据库服务器,然后执行以下命令:
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
ERROR at line 1:
ORA-12721: operation cannot execute when other sessions are active
或
ORA-12712: new character set must be a superset of old character set
若出现上面的错误,使用下面的办法进行修改,使用INTERNAL_USE可以跳过超集的检查:
SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP
修改完后查看:
select * from nls_database_parameters where parameter like '%SET%';
全部回答
- 1楼网友:洒脱疯子
- 2021-02-25 02:40
没有就自己创建一个二进制字符集nls_lang(hkey_local_machine\software\oracle\homexx\nls_lang),内容为nls_lang=[你想要的字符集],比如美国的:nls_language=american
或者你可以在pl/sql下修改:alter database set nls_lang=american
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯