中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > 数据库综合
Oracle 9i修改字符集为UTF8
作者:未知 时间:2005-09-13 23:43 出处:Blog.ChinaUnix.net 责编:chinaitpower
              摘要:Oracle 9i修改字符集为UTF8
韩语的,没有找到E文或者是中文的,虽然看不懂,但是命令还是可以看懂的

哪位好心的朋友可以给翻译一下

위의 문제에 대해 해결했습니다.
문제는 oracle9i에서 National Charset 변경에서 잘못한게 문제였습니다.

1.Oracle 9i가 설치가 되면 National Charset의 Default Value는 AL16UTF16입니
다.
이걸 UTF8로 바꿀려고 할때
이전방식처럼
update sys.props$
set value$ = 'UTF8' where name = ''NLS_NCHAR_CHARACTERSET'';
이렇게 하면 위의 문제가 발생됩니다.
Oracle에서 National Charset 변경정보가 다 반영이 안되는거죠...
그렇다보니 Table에 Insert할때 이전 Value인 AL16UTF16으로 데이터는 들어가고
Default Space만 UTF8로 들어가버린 겁니다...

2.그래서 제대로 바꿔야 합니다.
$ sqlplus ‘/ as sysdba’
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT EXCLUSIVE;
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 NATIONAL CHARACTER SET UTF8;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;

이렇게 하면 되는데 문제는
‘ORA-12717: Cannot ALTER DATABASE NATIONAL CHARACTER SET when
NCLOB data exists’ 이런 에러메시지가 나옵니다..
이걸 해결할려면 두가지 방법이 있는데
하나는 INTERNAL_USE 키워드를 사용하여 변경을 하면 되고
두번째는 re-create해야 합니다.
re-create하는 방법은 복잡해서...
internal_use로 해보면....
$ sqlplus ‘/ as sysdba’
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT EXCLUSIVE;
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 NATIONAL CHARACTER SET INTERNAL_USE UTF8;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
이렇게 하면 일단 National charset의 변경이 확실히 됩니다....

위와 같은 문제도 없고요...
괜히 쉽게 생각했다가 시간만 버렸습니다.
이젠 매뉴얼대로 제대로 변경을 해야겠다는 생각입니다....

알고 계신분도 있겠지만
.... 이렇게 해서 해결이 되어 올려봅니다...

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有