ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:19.76KB ,
资源ID:29809359      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29809359.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(约瑟夫问题c语言 Oracle多语言安装问题.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

约瑟夫问题c语言 Oracle多语言安装问题.docx

1、约瑟夫问题c语言 Oracle多语言安装问题约瑟夫问题c语言 Oracle多语言安装问题 导读:就爱阅读网友为您分享以下“Oracle多语言安装问题”资讯,希望对您有所帮助,感谢您对的支持!中国科技论文在线 Oracle数据库多语言入库问题的解决方案杨毅峰1,邹仕洪1,林宇2,刘苑琦21北京邮电大学网络与交换技术国家重点实验室,北京 (100876)2北京网秦天下科技有限公司,北京 (100013)E-mail: 摘 要:本文通过研究Oracle数据库如何成功实现多语言入库,给出了一种实现多国语言信息存储的基本方法,该方法解决了非中文语言入库时出现的乱码问题。随着企业在发展过程中业务的国际化,

2、业务信息的存储也从单一的本国语言发展成多国语言共存的局面。Oracle数据库作为国际化的数据库平台展现出了强大的全球化技术优势。在使用Oracle存储多国语言信息的过程中难免遇到由于字符集的不兼容而导致无法正确存储数据的问题,例如泰文、韩文、阿拉伯文等在默认字符集为ZHS16GBK,国家字符集为AL16UTF16的数据库的入库需要特殊的方法。关键词:ORACLE9I,泰文入库,多国语言存储,数据库乱码中图分类号:TP3111. 引 言2009年根据IDC报告显示Oracle在软件市场上位居第三,其数据库在全球中的影响以及使用都是十分广泛的,其全球化的基础是Oracle数据库字符集,即Oracl

3、e全球化支持(Globalization Support),Oracle可以支持多种语言及字符集,Oracle9i支持57种语言、88个国家地域、235种字符集1。由于Oracle字符集种类多,且在存储、检索、迁移Oracle数据时多个环节与字符集的设置密切相关,而且由于业务的国际化,需要多种语言共存,在实际的应用中,数据库开发和管理人员经常会遇到有关Oracle字符集方面的问题。笔者通过对网上资源的搜索,有的文章或者博客中给出了建议,但是并没有发现有小语种语言入库的良好解决方案。经过笔者的研究和实践,终于解决一个实际的问题泰语等入库。该方案通过使用Oracle的sqlloader方法,通过具

4、体的环境设置成功实现了多国语言入库。2. 字符集字符(Character)是文字与符号的总称,包括文字、图形符号、数学符号等。一组抽象字符的集合就是字符集(Charset)。字符集(也称字元集,Character Set)就是字符编码表(codepage),一个字符不论英文、中文、韩文、泰文、日文等任何语言,他们在计算机系统内存或硬盘中通过二进制的字节(Byte)保存,这个二进制的编码就是字符编码(也称内码),字符集就是字符与内码的对应(映射)表2。各个国家语言的差异,使得字符集本国化。使用最广泛的ASCII编码,由美国国家标准局(即ANSI)制定,适用于所有拉丁、英文字符。中国大陆使用GB2

5、312,GBK,GB18030等字符集,这些字符集包含所有汉字字符的内码,其中GBK,GB18030称为大字符集,对繁体中文也进行了编码。香港、台湾、澳门地区使用Big5编码,Big5收录了繁体中文(有些繁体与中国大陆繁体字符有差异)的编码,不包含简体中文的字符编码。泰文使用ISO 8859-1的字符集3。其他如日文、俄文等都有自己国家制定的字符集,用来保证计算机系统能正确 - 1 -中国科技论文在线 显示本国的语言文字。不同语言的字符集不具有通用性,ASCII 字符集没有制定中文字符的编码,GB2312没有制定泰文字符的编码,Big5没有制定简体中文字符的编码,针对这种不兼容性,官方发布了U

6、nicode (进一步优化的UTF7,UTF8,UTF16等)字符集,对每一种语言的每个字符制定了统一且唯一的内码,满足跨语言、跨平台的字符解码和转换处理。3. Oracle 字符集由于不同国家语言的编码不一致,因此Oracle 数据库内提供对两种字符集的支持默认字符集和国家字符集。其中,默认字符集提供了对CHAR 、VARCHAR 、VARCHAR2、CLOB 等的支持,比如;而国家字符集在提供了对NCHAR 、NVARCHAR 、NVARCHAR2、NCLOB 等的支持。本文使用的数据库中,默认字符集为ZHS16GBK ,国家字符集为AL16UTF16。也就是说对于所有定义为CHAR 、V

7、ARCHAR 、VARCHAR2、CLOB 等默认类型的字段,字符集为ZHS16GBK ,对于定义为NCHAR 、NVARCHAR 、NVARCHAR2、NCLOB 等类型的字段,字符集为AL16UTF16。Oracle 字符集包括两部分。一部分是Server 端数据库运行实例(instance )的字符集,一部分是Oracle 客户端Client 的字符集。3.1 Server端字符集 图1 oracle服务端安装 字符集配置截图安装Oracle 数据库过程中,需要选择数据库字符集。默认的是OS 系统的字符集,简体中文系统是GB2312,繁体系统是BIG5。Oracle 对于简体系统的字符集

8、使用ZHS16GBK 4。此外,选择Unicode 作为数据库字符集,所有存储数据都将以Unicode 编码存储在数据库中,不论字段类型是Number ,Varchar2,DateTime 等或者也可以从字符集列表中选择其他字符集。国家字符集的选择只有Unicode (AL32UTF8),这是为了存储ZHS16GBK 字符集不能识别的其他国家的字符的时候用到的。- 2 -中国科技论文在线3.2 Client端字符集 Oracle 的客户端安装过程中并没有选项选择Oracle Client的字符集。安装成功后,在注册表HKLOCAL_MACHINESOFTWAREORACLEKEY_ORACLE

9、CLENT_HOME1可以找到NLS_LANG键,值为当前OS 的字符集。如简体系统为:ZHS16GBK ,繁体系统为:MSWIN950。可见,Oracle Client(以下简称NLS_LANG)在安装过程中选择了OS 的字符集作为默认的NLS_LANG字符集。4. 泰文入库遇到的问题问题演示演示环境:pl/sql developer 7.1.0.13371,新建表结构TBL_THAI_TEST。 图2创建测试表结构 执行语句截图2,插入中文数据。 图3插入中文数据 执行语句截图3,插入泰文数据。 图4插入泰文数据 执行语句截图非常不幸运的是,把粘贴到pl/sql dev 的sql wind

10、ow的时候 变成了?, - 3 -中国科技论文在线 说明客户端对用自己的字符集进行了一次转换,但是该字符集没有对应的编码。windows xp 由于默认字符集是gbk ,所以想在c 命令提示符下粘贴输入也是不可能的,经过测试也是无法正确显示,由于american_america.al32utf8是可以支持泰文的,执行语句set nls_lang=american_america.al32utf8,依然是无法正确将泰文粘贴进去。 那么,到底如何解决泰文等多国语言正确存入oracle 的问题呢?5. 解决方案笔者经过多次反复测试终于解决了这个问题。解决方案是通过SQL*LOADER实现了泰文入库,

11、并且相继用该方法实现了阿拉伯语入库等。对于SQL*LOADER需要的数据文件我们需要使用UFT8来存储,这个时候我们需要定义字段为使用国家字符集的数据类型,比如NVARCHAR2。SQL*LOADER简介SQL*LOADER是ORACLE 的数据加载工具,通常用来将操作系统文件迁移到ORACLE 数据库中。SQL*LOADER是大型数据 仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT ,PARALLEL )5。实现过程:1) 创建数据表。数据表使用上文中提到的表tbl_thai_test,建表语句见图2,需要注意的是存储多国语言信息的字段应该设置成NVARCHAR2。打开dos

12、 命令窗口,设置SQL*LOADER客户端NLS_LANG环境变量nls_lang为american_america.al32utf8。 图5修改dos 语言环境变量 执行语句截图2) 准备SQL*LOADER控制文件,命名为tbl_thai_test.ctl。 图6控制文件内容截图 3) 数据文件,命名为tbl_thai_test.txt。 图7数据文件内容截图4) 执行导入命令。- 4 -中国科技论文在线 图8 dos下执行导入数据截图5)导入后,中泰文数据查询正常。 图9 PL/SQL下查询数据截图6)将泰文拷贝出来后,在google 中翻译得到如下结果: 图10 网页翻译泰文截图6.

13、结论本文提出了小语种语言入库时遇到的乱码问题,通过以上测试我们可以得出如下结论:1)对于多国语言的数据库字段,应该使用Oracle 支持的国家语言数据类型,如NVARCHAR2等。2)由于本次使用数据库国家字符集为AL16UTF16,因此完全支持多国语言数据存储。 本方案不仅仅是解决泰语入库问题,相应的对于其他小语种语言的入库也可以实现,并且是在实践当中得到证实的。7. 致谢感谢老师的悉心指导,感谢网秦天下提供测试平台,感谢网秦员工热心帮助。 - 5 -中国科技论文在线参考文献 1 Jack Wu理解ORACLE 数据库字符集EB/OL。2 Robert G.FreemanPortable D

14、BA Oracle Essential Techniques for the Day-to-Day DBAM . 商云飞,李勇北京:清华大学出版社,2006.43 何明 Oracle DBA 培训教程从实践中学习Oracle 数据库管理与维护(第2版)M . 北京: 清华大学出版社, 2009.7。4 Benjamin Rosenzweig Oralce PL/SQL by ExampleM . 龚波 北京:机械工业出版社, 2009.6。5 盖国强循序渐进Oracle 数据库管理、优化与备份恢复M . 北京:人民邮电出版社, 2007.9。6 凤凰涅磐深入了解字符集和编码EB/OL。The

15、Multi-language Storage of Oracle DatabaseYang Yifeng1,Zou Shihong1,Lin Yu2,Liu Yanqi21 State Key Lab of Networking and Switching Technology,Beijing University of Posts andTelecommunications, Beijing (100876)2 Beijing NetQin Tech. Co., Ltd, Beijing (100013) AbstractExtract: This thesis devotes itself

16、 to research on the methodology of multi-lingual entry that Oracle database adopts to realize multi-lingual information storage, which solves the problem of unrecognizable code when non-Chinese entry is applied. As the internationalization of business in the development process of enterprises, stora

17、ge of business information turns into the coexistence of multiple languages from a single national language. As an international database platform, oracle exhibit a strong technological advantage of globalization. Using oracle stored information in multiple languages will inevitably encountered prob

18、lems that caused by incompatibility of character set , such as Thai, Korean, Arabic, when stored in the database that the default character set is ZHS16GBK, national character set is AL16UTF16 will require special methods. Key Words: ORACLE9I, Thai entry, multi-lingual information storage, unrecognizable code作者简介:杨毅峰,男,1984年生,研究生,主要研究方向是oracle 数据库管理和应用以及数据仓库数据挖掘。 - 6 -XX搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1