如想更改oracle的字符集怎么办?

haichuang 2002-08-20 12:56:09
我现在有一个oracle的数据库的字符集是GB2312,现在需要将其改为GBK,该怎么做呢? 是不是必需重建数据库? 请各位大侠援手! 谢谢!
...全文
34 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluecetacean 2002-08-20
  • 打赏
  • 举报
回复
oracle文档上有标准的更改字符集的方法

以下内容源自oracle documents -- Oracle8i National Language Support Guide


To change the database character set, perform the following steps. Not all of them are absolutely necessary, but they are highly recommended:

SQL> SHUTDOWN IMMEDIATE; -- or NORMAL
<do a full backup>

SQL> STARTUP MOUNT;
SQL> ALTER SYSTEM ENABLE RESTRICED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER DATABASE OPEN;
SQL> ALTER DATABASE CHARACTER SET <new_character_set_name>;
SQL> SHUTDOWN IMMEDIATE; -- or NORMAL
SQL> STARTUP;


To change the national character set, replace the ALTER DATABASE CHARACTER SET statement with ALTER DATABASE NATIONAL CHARACTER SET. You can issue both commands together if desired.
ChilliInWinter 2002-08-20
  • 打赏
  • 举报
回复
linux 下如何修改?
Michaelyfj 2002-08-20
  • 打赏
  • 举报
回复
同时要修改注册表
KEY_LOCAL_MACHINE\Software\oracle
NLS_LANG: simplified chinese_china.zhsgbk
fa791222 2002-08-20
  • 打赏
  • 举报
回复
---- update NLS_DATABASE_PARAMETERS set VALUE = 'ZHT16GBK' where
--- PARAMETER = 'NLS_CHARACTERSET' OR PARAMETER = 'NLS_NCHAR_CHARACTERSET';
hdkkk 2002-08-20
  • 打赏
  • 举报
回复
SQL> SHUTDOWN IMMEDIATE; -- or NORMAL

SQL> STARTUP MOUNT;
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER DATABASE OPEN;
SQL> ALTER DATABASE CHARACTER SET ;
SQL> SHUTDOWN IMMEDIATE; -- or NORMAL
SQL> STARTUP;
zcs_1 2002-08-20
  • 打赏
  • 举报
回复
上面的语句应该是:

UPDATE sys.props$ SET VALUE$='ZHS16GBK'
WHERE NAME='NLS_CHARACTERSET';
zcs_1 2002-08-20
  • 打赏
  • 举报
回复
最好是重新建立数据库。
但是还有一个修改数据库字符集的办法,你可以试试:

UPDATE sys.props$ SET VALUE='ZHS16GBK'
WHERE NAME='NLS_CHARACTERSET';
COMMIT;

测试时要注意备份,我对此没有把握。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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