专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » oracle汉字:Oracle中的汉字显示 »正文

oracle汉字:Oracle中的汉字显示

来源: 发布时间:星期日, 2008年12月28日 浏览:2次 评论:0
="t18">
  Oracle以其强大数据库治理能力、高安全性、多用户操作时数据致性赢得了用户广泛青睐获得了很高市场占有率但是它在汉字信息显示时存在多种且相互的间不能通用这就给多数据库的间数据共享带来了些麻烦
  
  笔者从事Oracle数据库治理及应用软件Software开发工作多年常碰到Oracle数据库汉字显示问题主要现象是汉字显示为不可识别乱码信息无法使用本文介绍笔者在实际工作中点心得体会和大家起探讨
  
  
  中英文Oracle的间数据共享
  在笔者实际工作中有为多个 2级厂矿开发基于Oracle数据库应用而各个单位所用Oracle数据库在安装时所采用集各不相同用英文用中文当表中数据只是数字、英文信息时数据共享是可以; 当表中含有汉字信息时以正常方式进行共享就看不到汉字了而只会见到些乱码下面以Oracle 7.3版数据库为例介绍说明解决思路方法
  
  假设源数据库是中文目标数据库是英文利用 Delphi作为转换工具实际步骤依据导入和导出有所区别导出数据时步骤如下:
  
  >1. 配置客户端
  
  首先将本机Oracle客户端集配置得和源数据库打开注册表找到HKEY_LOCAL_MACHINE选下面SOFTWARE再选Oracle在注册表中找到NLS_LANG,将值改为:AMERICAN_AMERICA.ZHS16CGB231280
  
  2. 配置数据库别名
  
  用Delphi工具SQL EXPLORER配置两个数据库假名其中DBSOURCE1用来连接源数据库DBMIDDLE1用来连接中间数据库(Paradox表)
  
  3. 导出
  
  打开Delphi工具Database DeskTop,在主菜单中选Tools下面Utilities再选Copy会弹出个新对话框在Alias(数据库别名)中选择DBSOURCE1并输入用户口令在打开数据库中选择需要点击OK按钮在Alias(数据库别名)中选择DBMIDDLE1在File Name栏中输入目标表名点击COPY按钮假如显示: Copy SUCcessfully Completed则数据导出成功
  
  导入数据时步骤如下:
  
  1. 配置客户端
  
  首先将本机Oracle客户端集配置得和目标数据库打开注册表找到HKEY_LOCAL_MACHINE选下面SOFTWARE再选Oracle,在注册表中找到NLS_LANG,将值改为:AMERICAN_AMERICA.US7ASCII
  
  2. 配置数据库别名
  
  用Delphi工具SQL EXPLORER配置个数据库别名:DBTARGET1用来连接目标数据库
  
  3. 导入
  
  打开Delphi工具Database DeskTop,在主菜单中选Tools下面Utilities再选Copy会弹出个新对话框在Alias(数据库别名)中选择DBMIDDLE1在打开数据库中选择需要点击OK按钮在Alias(数据库别名)中选择DBTARGET1并输入用户口令在File Name栏中输入目标表名点击COPY按钮假如显示: Copy Successfully Completed则数据导入成功此时在目标数据库中查看导入汉字显示就正常了
  
  
  小型机和PC服务器的间
  数据共享
  笔者所在公司有小型机Alpha 2100作为数据库服务器上面有多个 2级单位使用随着时间推移数据增加用户增加小型机不堪重负运行速度缓慢不能满足日常工作需要
为了缓解这种情况有部分单位自备了PC服务器将数据从小型机上移植下来建立了自己单独数据库
  
  两个数据库都安装是英文从小型机上导出数据装入到PC服务器碰到汉字信息也不能正常显示这主要是两者操作系统区别小型机上是VMS系统而PC服务器上是NT 4.0有两种思路方法可以解决这个问题:
  
  1. 用仿真终端方式将数据导出
  
  用Telnet连接到小型机上执行exp将某个用户数据库导出为个*.dmp文件保存在PC服务器上
  
  2. 用FTP将数据取到本机
  
  用FTP连接到小型机上执行bin再执行Get将数据(*.dmp文件)以 2进制方式传输到本机注重这里必须用 2进制方式否则数据无法正常使用
  
  得到小型机上数据后再将本机客户端配置得和PC服务器将数据导入PC服务器数据库中切数据均可使用了
  
  
  数据库升级 在数据库使用中常会碰到Oracle版本升级如何在保证原来数据安全情况下将数据库平稳地升级?这里分两种情况:
  1. 英文安装
  
  假如原来数据库安装采用是英文则从Oracle 7.3升级到Oracle 8.0.5时只要将数据字典Props$中参数修改为“US7ASCII”即可
  
  以系统DBA身份登录SQL*PLUS执行如下命令修改数据字典:
  
  SQL>UPDATE PROPS$ SET VALUE$=‘US7ASCII’WHERE NAME=‘NLS_CHARACTERSET’;
  
  SQL>COMMIT;
  
  注重修改后必须重新启动数据库配置才起作用然后将从Oracle
  
  2. 中文安装
  
  假如原来数据库安装采用是中文直接将数据导入是否可用呢?不可以汉字显示为乱码
  
  原因是Oracle 7.3中文参数是:ZHS16CGB231280而Oracle 8.0.5中文参数是:ZHS16GBK两者不为了能正常地使用必须修改Oracle 8.0.5数据字典参数为:ZHS16CGB231280具体修改步骤如下, 用系统DBA身份登录SQL*PLUS执行:
  
  SQL>UPDATE PROPS$ SET VALUE$=‘ZHS16CGB231280’WHERE NAME=‘NLS_CHARACTERSET’;
  
  SQL>COMMIT;
  
  注重修改后必须重新启动数据库配置才起作用然后将从Oracle 7.3导出数据导入Oracle 8.0.5数据库中即可

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: