首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > Oracle 数据库字符集的更改
【标  题】:Oracle 数据库字符集的更改
【关键字】:Oracle
【来  源】:http://www.cublog.cn/u/16308/showart.php?id=219521

Oracle 数据库字符集的更改

昨天boss让我写份关于oracle字符集更改的doc,现传上来,分享一下,8i和9i均能通过



在更改字符集之前,应该严格做好备份!在shutdown immediate之后对整个数据文件做一次cold buckup,以便在字符集更改失败时进行recover操作。


首先需要确认,在oracle9i库中,如果表中有包含clob字段,那么将不能允许对字符集进行修改,如果是用户表,可以先把该表导出==》drop==》转换完成后在导入,对于系统表,可以先truncate table Metastylesheet(这个表就是系统中包含clob字段的表),转换完成后使用脚本rdbms\admin\catmet.sql(windows),rdbms/admin/catmet.sql(unix)进行重建。

C:\Documents and Settings\zhouyu>sqlplus /nolog

 

SQL*Plus: Release 8.1.7.0.0 - Production on 星期四 12月 21 15:20:13 2006

 

(c) Copyright 2000 Oracle Corporation.  All rights reserved.

 

SQL> conn sys/change_on_install as sysdba

已连接。

 

SQL> select userenv('language') from dual;

 

USERENV('LANGUAGE')

----------------------------------------------------

SIMPLIFIED CHINESE_CHINA. ZHS16CGB231280

--这里是我机器上的字符集设置,为ZHS16CGB231280,现在要将它改为ZHS16GBK

 

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup mount

ORACLE 例程已经启动。

Total System Global Area  213911580 bytes

Fixed Size                    75804 bytes

Variable Size             108933120 bytes

Database Buffers          104824832 bytes

Redo Buffers                  77824 bytes

数据库装载完毕。

SQL> show parameter job_queue_processes;

 

NAME              TYPE      VALUE

--------------           ------------   ---------------

job_queue_processes   integer      10

 

SQL> show parameter  AQ_TM_PROCESSES;

 

NAME              TYPE      VALUE

--------------           ------------   ---------------

job_queue_processes   integer      2

 

--以上job_queue_processes和AQ_TM_PROCESSES参数先用show parameter命令查看出现在系统--使用的value,并且记录下来,以便更改后使用。

 

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 INTERNAL_USE ZHS16GBK;

 

数据库已更改。

 

SQL> select userenv('language') from dual;

 

USERENV('LANGUAGE')

----------------------------------------------------

SIMPLIFIED CHINESE_CHINA.ZHS16GBK

--可以看到,现在的字符集设置已经改为ZHS16GBK

 

现在需要将前面更改的job_queue_processes和aq_tm_processes参数改回来

命令如下:

SQL> alter system set job_queue_processes =10;

 

系统已更改。

 

SQL> alter system set aq_tm_processes = 2;

 

系统已更改。

 

并且对数据库取消访问限制:

SQL> alter system disable restricted session;

 

系统已更改。

 

到此,更改已经完成。请注意的是,在操作之前进行备份!不仅是指修改字符集的操作,任何不能确定影响结果的操作之前都应该对数据库进行备份。



log archive设置:【上一篇】
有关Oracle job的问题:【下一篇】
【相关文章】
  • ORACLE级联查询
  • java连接操作Oracle出现的问题及解决方法
  • Oracle多个数据库启动和关闭脚本
  • Oracle查看表空间的sql语句
  • 如何通过公网来访问防火墙后面的Oracle
  • 1、Oracle Internet Application Server产品
  • oracle OCP指南
  • 使用SQL語法變更oracle9i的Apache端口
  • Rational RequisitePro的数据库配置-DB2,Oracle, SQL Server,Access
  • oracle known issue about shared pool latch
  • 【随机文章】
  • JSP动作指令
  • 一种Linux网络中的UPS解决方案
  • find命令的一些使用方法
  • Visual InterDev的概念
  • RHEL4关闭SELinux的方法。
  • FC6 下安装播放器mplayer 和 realplayer
  • windows.应用命令行修改NTFS权限
  • 用Windows的引导程序来引导Linux
  • oracle--id的自动增加
  • perl的能力
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.