精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● 数据库技术>>Oracle产品>>ORACLE字符集的更改

主题:ORACLE字符集的更改
发信人: tigeryzs(fisher)
整理人: tidycc(2001-03-11 19:10:29), 站内信件
【 在 jamesqiu 的大作中提到:】
下面提供三种解决方法: 

(1) 服务器端重新安装ORACLE 

 在重新安装ORACLE 时选择与原卸出数据一致的字符集(本例为US7ASCII)。 

 加载原卸出的数据。 

 这种情况仅仅使用于空库和具有同一种字符集的数据。 

(2)强行修改服务器端ORACLE当前字符集 

在用imp命令加载数据前,先在客户端用sql*plus登录system DBA用户,执行下列SQL语句进行当前ORACLE数据库字符集修改: 

 SQL > create database  character set US7ASCII
* create database character set US7ASCII
      ERROR at line 1:
ORA-01031: insufficient privileges

---- 你会发现语句执行过程中,出现上述错误提示信息,此时不用理会,实际上ORACLE数据库的字符集已被强行修改为US7ASCII,接着用imp命令装载数据。等数据装载完成以后,shutdown 数据库,再startup 数据库,用合法用户登录ORACLE数据库,在sql>命令提示符下,运行select * from V$NLS_PARAMETERS,可以看到ORACLE数据库字符集已复原,这时再查看有汉字字符数据的表时,汉字已能被正确显示。 

(3)利用数据格式转储,避开字符集限制 

这种方法主要用于加载外来ORACLE数据库的不同字符集数据。其方法如下: 

先将数据加载到具有相同字符集的服务器上,然后用转换工具卸出为foxbase 格式或access格式数据库,再用转换工具转入到不同字符集的ORACLE数据库中,这样就避免了ORACLE字符集的困扰。目前数据库格式转换的工具很多,象power builder5.0以上版本提供的pipeline,Microsoft Access数据库提供的数据导入/导出功能等。转换方法参见有关资料说明。

[关闭][返回]