oracle数据库中文字符集与英文字符集的转换oracle数据库中文字符集与英文字符集的转换
Oracle数据库中文字符集与英文字符集的转换
摘 要:摘 要:早期,河北邯郸电力公司的应用系统的后台rale数据库基本采用US7ASII英文字符集,而后期随着中文字符集的加入,现引入rale数据库大部分采用ZHS16GBK中文字符集,导致公司应用系统之间数据交互出现问题。本文利用rale数据库参数可临时调整的特性,将英文数据库的用户数据移植过来。实现了将rale数据库英文字符集到中文字符集数据库移植,方便统一管理维护。
关键词:关键词:rale、英文字符集、中文字符集
...
oracle数据库中文字符集与英文字符集的转换
Oracle数据库中文字符集与英文字符集的转换
摘 要:摘 要:早期,河北邯郸电力公司的应用系统的后台rale数据库基本采用US7ASII英文字符集,而后期随着中文字符集的加入,现引入rale数据库大部分采用ZHS16GBK中文字符集,导致公司应用系统之间数据交互出现问题。本文利用rale数据库参数可临时调整的特性,将英文数据库的用户数据移植过来。实现了将rale数据库英文字符集到中文字符集数据库移植,方便统一管理维护。
关键词:关键词:rale、英文字符集、中文字符集
1.引言
rale公司是世界上最大的数据库软件公司,与Sybase、Infix公司一样,rale数据库的应用比较广泛[1]。河北邯郸电力公司后台应用系统就选用了rale数据库,在rale实际应用工作中,由于引入时间先后的原因,应用系统数据库早期主要采用英文字符集US7ASII,而后来又主要采用中文字符集ZHS16GBK不同rale字符集数据库的存在容易造成以下几方面的问题:需要进行0rale客户端字符集的切换;公司内部不同字符集数据库的数据在无法进行正常的数据交互和传递;目前省公司以及省公司其他下属单位安装的rale数据库均一致为采用的是中文字符集,这样就造成邯郸供电公司与省公司无法进行数据交互。严重影响了系统的运行效率及省公司应用系统的推广工作。本人通过对公司前后不同数据库字符集的研究分析,制定了一套实现中文字符集到英文字符集转换的方法,该方法应用到公司应用系统,达到了不同应用系统之间实现资源共享的目标。
2.rale字符集
计算机不仅能处理数值,还能处理诸如文字、非凡符号等其他信息,而计算机本身能直接处理的只有数值信息,所以就
对这些文字、符号信息进行数值编码,最初的字符集是我们都非常熟悉的ASII,它是用7个二进制位来
示128个字符,而后来随着不同国家、组织的需要,出现了许许多多的字符集,如表示西欧字符的IS08859系列的字符集,表示汉字的GB2312—80、GBK等字符集[2]。
rale字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。rale 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。
字符数据库字符集在创建数据库时指定,在创建后通常不能更改。在创建数据库时,可以指定为字符集(HARATER SET)或国家字符集(NATINALHARATER SET)。
2.1 字符集
(1) 用于存储HAR、VARHAR2、LB、LNG等类型数据;
(2) 用于标示诸如表名、列名以及PL/SQL变量等;
(3) 用于存储SQL和PL/SQL程序单元等。
2.2国家字符集
(1) 用于存储NHAR、NVARHAR2、NLB等类型数据。
(2) 国家字符集实质上是为0rale选择的附加字符集,主要作用是为了增强rale的字符处理能力,因为NHAR数据类型可以提供对亚洲使用定长多字节编码的支持,而数据库字符集则不能。国家字符集在rale 9I中进行了重新定义,只能在unide编码中的AFl6UTF16和UTF8中选择,默认值是AFl6UTF16。
2.3字符集的查看与修改
字符集的查看一般可以通过对以下数据字典或视图设置情况来获取,nls_database_paraeters、prps$、v$nls_paraeters查询结果中NLS_HARATERSET表示字符集,NLS_NHAR_HARATERSET表示国家字符集。
数据库字符集在创建数据库时指定,一般数据库字符集在创建后原则上不能更改。但可以通过如下两种方法进行修改:其一,重建数据库,再导入数据库数据的方式来转换;其二,通过ALTER DATABASE HARATER SET语句修改字符集,但创建数据库后修改字符集是有限制的,只有新的字符集是当前字符集的超集时才能修改数据库字符集,例如,UTF8是US7ASII的超集,修改数据库字符集可使用ALTER DATABASE HARATER SET UTF8。
3.字符集转换
本文以河北邯郸电力公司应用系统后台rale数据库为实验对象,针对其新老rale数据库字符集不一致问题,提出一种优秀的中英文字符集的转换方案,实现US7ASII英文字符集到ZHS16GBK中文字符集的转换,利用RALE数据库参数可临时调整的特性,采用修改数据库参数的方法,保证了原有的数据顺利平稳的移植到新的数据库中。图1给出了转换方案的具体
。
(1) 导出源数据库英文字符集的用户数据。将源数据库中要移植到目的数据库的用户数据进行备份,导出用户dp文件;
exp usernae/passrd file=usernae.dp
(2) 临时修改目的数据库的字符集参数。将以中文字符集为目的数据库的字符集参数临时修改为英文字符集,以便于用户dp文件可以导入;
update prps$ set value$ = 'US7ASII' here nae = 'NLS_HARATERSET';
update prps$ set value$ = 'US7ASII' here nae = 'NLS_NHAR_HARATERSET';
it rk;
(3) 重启目的数据库以使得参数设置有效;
SQLnn / as sysdba;
SQL shutdn iediate;
SQL st
本文档为【oracle数据库中文字符集与英文字符集的转换】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。