动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.oracle产品服务和技术级别介绍,O.
.Oracle复合数据类型(3).
.Oracle简化企业网格运算环境管理.
.PL/SQL 快速建立DB_LINK.
.开机、关机、线上求助与指令下达.
.i系列上运行的Linux分区数量和Li.
.ORACLE入门之关于ROLLBACK SEGEM.
.如何查找bad sql几种具体详细的步.
.用智能优化限制提高Oracle数据库.
.Oracle初学点滴-(2)-OracleOraHo.
.数据库迁移中的Web翻页优化实例.
.Oracle 10月份发表的一系列漏洞.
.Oracle的字符集问题.
.Ruby on Rails 连接 Oracle 数据.
.TestKing Oracle 1Z0-032 Edt9.0.
.Oracle数据库常见错误操作及解决.
.跳跃式索引(Skip Scan Index)的浅.
.Oracle DBA 数据库结构试题选1.
.如何让文件系统自动mount后,还能.
.Reports产品简介.

Oracle中的汉字显示

发表日期:2008-2-9 |



  Oracle以其强大的数据库治理能力、高安全性、多用户操作时数据的一致性,赢得了用户的广泛青睐,获得了很高的市场占有率。但是,它在汉字信息显示时存在多种字符集,且相互之间不能通用,这就给多数据库之间的数据共享带来了一些麻烦。
  
  笔者从事Oracle数据库治理及应用软件的开发工作多年,常碰到Oracle数据库汉字显示的问题,主要现象是汉字显示为不可识别的乱码,信息无法使用。本文介绍笔者在实际工作中的一点心得,与大家一起探讨。
  
  
  中英文Oracle之间的数据共享
  在笔者的实际工作中,有为多个二级厂矿开发的基于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作为数据库服务器,上面有多个二级单位使用。随着时间的推移,数据增加,用户增加,小型机不堪重负,运行速度缓慢,不能满足日常的工作需要。
为了缓解这种情况,有部分单位自备了PC服务器,将数据从小型机上移植下来,建立了自己单独的数据库。
  
  两个数据库都安装的是英文字符集,从小型机上导出的数据,装入到PC服务器,碰到汉字信息也不能正常显示。这主要是因为两者的操作系统不同,小型机上是VMS系统,而PC服务器上是NT 4.0,有两种方法可以解决这个问题:
  
  1. 用仿真终端的方式将数据导出
  
  用Telnet连接到小型机上,执行exp,将某个用户的数据库导出为一个*.dmp文件,保存在PC服务器上。
  
  2. 用FTP将数据取到本机
  
  用FTP连接到小型机上,执行bin,再执行Get,将数据(*.dmp文件)以二进制的方式传输到本机。注重这里必须用二进制方式,否则数据无法正常使用。
  
  得到小型机上的数据后,再将本机客户端配置得和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的数据库中即可。
上一篇:Oracle数据库数据对象分析 人气:486
下一篇:ORACLE入门之关于用户管理 人气:598
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-7 Web Wiz Forums(论坛系统) v9.53
2008-10-7 Web Wiz Forums(论坛系统) v9.53
2008-10-7 Web Wiz Forums(论坛系统) v9.53
2008-10-7 HDWiki v4.0.1 bulid 081007 UTF
2008-10-7 迅易评选投票管理系统 v10.0
2008-10-7 HDWiki v4.0.1 bulid 081007 GBK
2008-10-7 Bitrac单用户博客 v1.14 bulid 0
2008-10-7 OpenX(广告管理系统) v2.6.2 多国
2008-10-7 乐铺网店系统免费普及版 v3.41
2008-9-29 酷狗音乐(原KuGoo)2008 v5.310 正
2008-9-29 QQTab 1.1
2008-9-29 网络传送带 Net Transport 2.64a
2008-9-29 谷歌金山词霸v1.8
2008-9-29 TweakVI 1.0 Build 1090
2008-9-29 ACDSee Pro 2.5 Build 333 汉化绿
2008-9-29 Winamp v5.541(2189) 周明波简体
2008-9-27 CCleaner 2.12.651
2008-9-27 Mozilla Thunderbird 2.0.0.17 英
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成