`

(转)在英语 OS 上设置 DB2 UDB 版本 8 中的混合字节字符集(MBCS)数据库

    博客分类:
  • DB2
阅读更多

http://www.ibm.com/developerworks/cn/data/library/techarticles/0209kline/0209kline.html#resources

在英语 OS 上设置 DB2 UDB 版本 8 中的混合字节字符集(MBCS)数据库

 

David J Kline, DB2 Vendor Enablement,PartnerWorld for Developers, IBM 开发人员技术支持(Developer Technical Support (DTS))中心 — 达拉斯
Gabor Wieser, DB2 Vendor Enablement,PartnerWorld for Developers, IBM 开发人员技术支持(Developer Technical Support (DTS))中心 — 达拉斯

 

简介: 本文提供了循序渐进的指导,它适合于那些需要在英语操作系统环境中在 DB2 Universal Database 版本 8 上设置环境并创建混合字节设置(MBCS)数据库的人。您将能够在 Windows 和 AIX 环境中,从 DB2 命令窗口针对 MBCS 数据库创建、连接和执行 SQL 测试。

 

 

发布日期: 2002 年 9 月 01 日 
级别: 初级 
访问情况 438 次浏览 
建议: 0 (添加评论)

1 star2 stars3 stars4 stars5 stars 平均分 (共 0 个评分 )

 

简介

本文将说明开发人员如何在英语 Windows 操作系统或 AIX 操作系统上,对正在运行的、使用混合字节字符集(mixed-byte character set (MBCS))的数据库的应用程序进行测试。现在,许多开发人员面对着这样的需求:以各种语言运行数据库测试,但他们没有或不想要更多硬件资源,以便在专用机器上测试每种语言。通过支持英语操作系统来执行针对多个异构数据库的测试,所需的硬件最少,因此降低了成本并提高了效率。

在位于达拉斯的开发人员技术支持中心,我们发现大多数在 DB2 上使用多语言支持方面需要获得帮助的独立软件供应商(Independent Software Vendor (ISV))询问的都是:如何为 MBCS 支持设置数据库和操作系统环境。因此,本文是针对开发人员和需要在英文操作系统环境中的 DB2 Universal Database™ 版本 8 上设置 MBCS 的其它读者(如与我们合作的 ISV)而写的。本文中的基本准则也适用于任何单字节字符集(SBCS)语言环境。

我们将向您提供详细信息,使您在 Windows® 和 AIX® 环境中,都能从 DB2 命令窗口(Command Window)创建、连接 MBCS 数据库和对其执行 SQL 测试。UTF-8 数据库也可用于多语言环境,但这里我们将不涉及该主题,因为它在本文讨论范围之外。请注意 UTF-8 有一些值得仔细研究的好处。在本文结束部分,您将看到至 UTF-8 信息以及其它代码页相关主题的链接。

我们将在本文中通篇使用一个日语示例来设置 MBCS 环境、创建数据库和执行 SQL 测试。

字符集编码简明提要

欧洲语言是用字母文字书写的,它们作为指示发音的符号而显示。远东语言是用象形文字书写的,它们以抽象方式表示字的意义。象形字符集比字母字符集大很多,因此引入了混合字节字符集(MBCS)支持来克服单字节字符集(SBCS)256 个字符的限制。

人们使用了两种方法来解决字符限制问题:双字节字符集(DBCS)和混合字节字符集(MBCS)。这些字符集分为两个类别:

  • 通用语言支持— 对许多种语言提供支持的字符集(UTF 和 UCS)
  • 单一语言支持— 每种字符集专用于特定语言和平台。

本文描述单一语言支持。我们将日语支持用作示例进行说明。

可以用两种方法之一来编码日语象形字符:

  • Shift-JIS(SJIS)编码方案 
    SJIS 用于 IBM-932 和较新的 IBM-943 代码集。可以在大多数平台上使用这些代码集。每个字符的第一个字节用来确定该字符的字节数。但有例外,从 0x20 到 0x7F 和从 0xA0 到 0xDF 的值用来编码 ASCII 和片假名字符。从 0x81 到 0x9f 和从 0xe0 到 0xfc 的位置保留,用作多字节字符的第一个字节。将 JISX0208 字符映射到从 0x8140 开始的多字节值。多字节字符的第二个字节可以是任何值。
  • 扩展 UNIX® 代码(Extended UNIX® Code (EUC))编码方案。IBM-eucJP 代码集可用于 UNIX 平台。EUC 编码方案定义了一组可以支持一至四个字符集的编码规则。如果您计划在数据库中存储某些图形字符,则这种对于多个字符集的支持可能是必要的。基于 EUC 的代码集遵守 EUC 编码规则,但也标识与特定实例相关联的特定字符集。例如,用于日语的 IBM-eucJP 根据 EUC 编码规则引用日本工业标准(Japanese Industrial Standard)字符的编码。

第一个集 — 字符集 O(CSO)总是包含 ASCII 字符集。所有其它集都必须将最高位(MSB)设置为 1 并可以使用任意数目的字节来编码字符。此外,字符集中的所有字符必须具有:

  • 相同的字节数来编码所有字符
  • 相同的列显示宽度(在固定宽度的终端上的列数)。

第三个集(CS2)中的所有字符总是以控制字符 SS2(single-shift 2,0x8E)开头。符合 EUC 的代码集仅将 SS2 控制字符用于标识第三个集。第四个集(CS3)中的所有字符总是以控制字符 SS3(single-shift 3,0x8F)开头。符合 EUC 的代码集仅将 SS3 控制字符用于标识第四个集。

以下是 EUC 所支持的不同代码集的格式:

CS0 - 0xxxxxxx
CS1 - 1xxxxxxx or 1xxxxxxx 1xxxxxxx or 1xxxxxxx 1xxxxxxx 1xxxxxxx
CS2 - 10001110 1xxxxxxx or 10001110 1xxxxxxx 1xxxxxxx 
or 10001110 1xxxxxxx 1xxxxxxx 1xxxxxxx
CS3 - 10001111 1xxxxxxx or 10001111 1xxxxxxx 1xxxxxxx 
or 10001111 1xxxxxxx 1xxxxxxx 1xxxxxxx

设置环境

假定您安装了具有服务器能力的 DB2 UDB 修订版,则我们可以继续下去,介绍环境设置。环境的设置会因您选择的操作系统而异。我们将首先说明 Windows上的设置过程,然后提供用于 AIX的指示。

注:下面的指示适用于设置您的环境以便从 DB2 命令窗口进行测试。如果您只对设置环境以便从应用程序(而不是 DB2 命令窗口会话)进行测试感兴趣,则下面设置环境的步骤将不适用。相反,您将需要从 DB2 命令窗口执行下列命令:

        db2set DB2CODEPAGE=<codepage of your application>

我们强烈建议:一旦完成测试,就立即将 DB2CODEPAGE 环境变量复位到其最初状态。继续启用这个变量可能引起问题。要禁用该变量,输入下列命令:

db2set DB2CODEPAGE=

如果您计划使用 DB2CODEPAGE ,可以跳到 创建 MBCS 数据库

Windows 上的配置

要在 Windows 上进行配置,您必须首先安装 DB2 消息文件集,然后设置代码页转换文件集。

安装 DB2 消息

为了便于 DB2 在执行 DB2 命令或语句之后显示错误、警告和指示性消息,必须安装您期望使用的语言的 DB2 消息文件集。因为 DB2 有基于语言分组的不同分发版,您必须验证安装 CD-ROM 上有您期望的语言。在 Windows 上,您可以选择在 DB2 安装时添加针对某种语言的特定消息集。对于版本 7,您仅可以安装一种语言,但在版本 8 上,您可以选择安装多种语言。如果您计划在几种语言环境之间进行切换,那么这个新特性是特别棒的。安装期间是您为特定语言安装 DB2 消息的唯一机会。请注意:在安装过程中,您必须选择 Custom Install而不是 Typical Install

在为 DB2 安装了消息文件集之后,您就能在执行 DB2 命令或 SQL 语句后看到 DB2 错误、警告和指示性消息。以下是一个英语消息示例:

C:\PROGRA~1\SQLLIB\BIN>db2 "connect to jpdb"

SQL0332N  There is no available conversion for the source 
        
code page "1252" to the target code page "943".  Reason Code "1".  
        
SQLSTATE=57017
      

不必为了创建和运行 MBCS 数据库而安装特定语言的 DB2 消息。它只是提供了用您选择的语言显示消息的便利。

设置代码页转换文件集

设置您环境的下一个步骤取决于您所选择的语言。在示例中,我们将设置日语环境。为了设置 Windows 环境以处理日语代码页转换,我们必须在 Windows 机器上的 Regional Options中更改一些设置。

  1. 单击 Start--> Settings-> Control Panel,然后单击 Regional Options,打开 图 1 中所示的弹出对话框。 
    图 1. Windows 环境中的 Regional Options
    图 1. Windows 环境中的 Regional Options 
  2. 在对话框顶部,选择 Japanese作为您的语言环境。语言环境将影响数字、货币、时间、日期和输入文本将使用的语言。
  3. 在对话框底部,单击 Set default,然后单击 OK。(请参阅 图 2。)这一规定允许应用程序用其本地语言显示菜单和对话框而不影响 Windows 菜单和对话框。 
    图 2. 语言环境对话框
    图 2. 语言环境对话框 
  4. 单击 Regional Options对话框的 OK,它打开 图 3 中所示的对话框。 
    图 3. 安装对话框
    图 3. 安装对话框 
  5. 很可能您的机器上已经有文件了,因此可以单击 Yes来从您的硬盘安装它们。如果您的驱动器上没有这些文件,那么,将提示您插入 Windows 安装 CD-ROM 以便获取文件。
  6. 因为在安装这些文件后,将会使操作系统的注册表发生更改,所以在准备好创建数据库之前,您必须重新引导机器。

AIX 上的配置

要在 AIX 上进行配置,您必须首先安装 DB2 消息文件集,然后设置代码页转换文件集。

安装 DB2 消息 
在 AIX 上,可以通过安装 CD-ROM 上的 db2setup 或通过 SMIT 来安装 DB2 消息。 db2setup 是允许您安装 DB2 组件(如 DB2 消息文件集)的可执行文件。DB2 在 AIX 上提供这些消息以在 DB2 命令或 SQL 语句执行之后显示错误、警告和指示性消息,正如它在 Windows 上所做的一样。在安装 DB2 之后,您可以随时添加附加的语言文件集,这允许您显示与当前语言环境相关联的 DB2 消息。

版本 7 和版本 8 都允许您安装多种语言消息文件集,当您需要从一种语言环境切换到另一种时,这提供了灵活性。当 DB2 检测到 LANG 环境变量更改时,它会自动切换消息文件集。缺省情况下,安装英语消息。

不必将数据库的特定语言调整到您期望的环境。例如,不必为运行日语数据库而安装 DB2 的日语消息文件集。如果不能找到日语消息文件集,DB2 将使用英语消息。

设置代码页转换文件集

下一步是查看您是否有特定于操作系统的文件集来启用从源代码页到 MBCS 代码页的代码页转换。您可以通过执行下列命令,观察结果输出以检查是否已安装那些文件集:

lslpp -l | grep bos.loc.pc.Ja_JP (for SJIS)
bos.loc.pc.Ja_JP      4.3.3.0  COMMITTED  Base System Locale PC Code Set

lslpp -l | grep bos.loc.iso.ja_JP
bos.loc.iso.ja_JP      4.3.3.0  COMMITTED  Base System Locale ISO Code

如您所见,日语文件集已安装,因此不必再安装任何文件集了。以下是从 AIX 4.3.3 安装 CD-ROM 集安装文件集的命令示例:

installp -acgNqwX -d /dev/cd0 -f File 2>&&1

File:

    bos.loc.iso.ja_JP         4.3.3.0
    bos.loc.pc.Ja_JP          4.3.3.0

在您应用了文件集之后,必须将 LANG 环境变量设置为该语言类型。以下是用于特定的日语环境的命令:

$export LANG=Ja_JP
   

请确保安装了文件集以及正确设置了 LANG 环境变量。当您尝试连接到 MBCS 数据库时,不满足这些需求将触发下列错误:

$ db2 "connect to jpdb"
SQL0332N  There is no available conversion for the source code page "819" to
the target code page "943".  Reason Code "1".  SQLSTATE=57017

如果您经常切换语言环境,那么,您需要执行 db2 terminate 来终止可能记住旧 LANG 环境的现有后台进程,然后连接到数据库。

创建 MBCS 数据库

您可以选择在启用特定语言环境之前或之后创建您的 MBCS 数据库。如果您希望首先创建数据库,则必须在执行 CREATE DATABASE 命令时提供额外的信息。否则 DB2 将采用来自语言环境的缺省代码页。

下面,我们将在启用日语语言环境之前创建日语数据库:

db2 "create database jpdb using codeset IBM-943 territory JP"

CODESET 关键字告知 DB2 用代码页 943(一种日语代码页)创建数据库。

如果您在设置了语言环境之后创建数据库,或使用 db2set 将 DB2CODEPAGE 环境变量设置为指定的代码页(请参阅 设置环境),则您所要做的一切就是输入下列命令:

db2 "create database jpdb"

因为已经设置了日语环境,所以 DB2 会知道在 Windows 上用代码集 IBM-943 创建日语数据库。在 AIX 上,DB2 引用 LANG 环境变量来确定数据库的代码页。如果设置了 DB2CODEPAGE,DB2 会根据这个 DB2 环境变量,而不是检查 LANG 环境变量(在 AIX 上)或操作系统代码页(在 Windows 上)来确定用于创建数据库的代码页。

DB2 提供了许多代码集,因此您可以在自己选择的平台上使用正确的代码页来创建数据库。 表 1显示了支持的日语代码集。

表 1. 支持的日语代码集
代码页 分组 代码集 地域标识符 国家/地区代码 语言环境 操作系统 国家/地区名称
932 D-1 IBM-932 JP 81 - OS2 日本
942 D-1 IBM-942 JP 81 - OS2 日本
943 D-1 IBM-943 JP 81 - OS2 日本
954 D-1 IBM-9eucJP JP 81 ja_JP AIX 日本
943* D-1 IBM-943 JP 81 Ja_JP AIX 日本
954 D-1 eucJP JP 81 ja_JP.eucJP HP 日本
5,039 D-1 SJIS JP 81 ja_JP.SJIS HP 日本
954 D-1 eucJP JP 81 ja_JP.eucJP HP 日本
954 D-1 eucJP JP 81 ja SCO 日本
954 D-1 eucJP JP 81 ja_JP SCO 日本
954 D-1 eucJP JP 81 ja_JP.EUC SCO 日本
954 D-1 eucJP JP 81 ja_JP.eucJP SCO 日本
954 D-1 eucJP JP 81 ja Sun 日本
943 D-1 IBM-943 JP 81 font-family: arial, nsimsun, sans-serif; border-top-color: #cccccc; border-top-style: solid; border-top-width: 1px; padding-top: 8px; padding-right: 5px; padding-bottom: 8px; pad
分享到:
评论

相关推荐

    DB2 UDB for Linux, UNIX and Windows 数据库管理

    【DB2 UDB for Linux, UNIX and Windows 数据库管理】是针对DB2通用数据库在Linux、UNIX和Windows操作系统上的管理知识的综合学习资源。这篇文章旨在为数据库管理员、顾问和技术专家提供一系列的学习材料,帮助他们...

    IBM DB2 UDB 词汇表.zip

    9. **分区(Partitioning)**:在大型系统中,为了提高性能和可扩展性,DB2 UDB允许将大表和索引分区到多个物理设备上。 10. **复制(Replication)**:DB2 UDB支持数据复制,可以在多个站点间同步数据,用于灾难...

    DB2 UDB 9.1 For AIX 安装指南

    DB2 Universal Database (UDB) 9.1 for AIX 是一款在IBM AIX操作系统上运行的关系型数据库管理系统,提供了高级的数据管理和分析功能。这篇安装指南详细介绍了在AIX环境下安装和配置DB2 UDB v9.1的全过程,适合具有...

    微软环境DB2 UDB 7.1开发指南

    《微软环境DB2 UDB 7.1开发指南》是一本专为在Windows操作系统环境下使用IBM的DB2 Universal Database(UDB)7.1版本进行应用程序开发的技术书籍。该指南详细阐述了如何在微软平台上充分利用DB2的强大功能,为开发者...

    DB2 UDB Version 8 Product Manuals_Implementation

    ### DB2 UDB 版本 8 产品手册:实施篇 #### 概述 IBM DB2 Universal Database(简称 DB2 UDB)是一款强大的关系数据库管理系统(RDBMS),广泛应用于企业级数据管理领域。DB2 UDB Version 8 的《管理指南:实施篇...

    调优 DB2 UDB v8

    在当今的IT环境中,性能优化是确保应用程序高效运行的关键因素,特别是当这些应用依赖于IBM DB2 Universal Database(DB2 UDB)作为数据存储时。本文主要关注如何针对DB2 UDB v8.1进行调优,以实现最佳的数据库性能...

    DB2 UDB Express-C V9.7 数据库基础 实验

    在DB2 UDB Express-C V9.7版本中,它提供了一个免费的社区版,适合小型企业和个人开发者使用,以进行学习、开发和测试。本实验将深入介绍DB2 UDB的基础知识,并通过实际操作来帮助你掌握数据库的使用。 1. **安装与...

    Oracle 数据库 10g 与 IBM DB2 UDB 技术概述

    《Oracle数据库10g与IBM DB2 UDB技术概述》一文旨在对比分析Oracle数据库10g和IBM DB2 UDB两大主流企业级数据库管理系统的关键技术特性,为IT专业人士提供全面的技术参考。以下是对该文章核心知识点的深入解读: ##...

    DB2 UDB培训资料

    DB2 Universal Database(UDB)是IBM公司推出的一款企业级关系型数据库管理系统,它支持多种操作系统平台,包括Windows、Linux、Unix以及IBM自身的AIX。本篇内容将围绕DB2 UDB培训资料展开,深入讲解其中涉及的关键...

    db2_udb_v8

    db2_udb_v8开发文档

    DB2 UDB SQL入门

    DB2 Universal Database (UDB) 是IBM开发的一款关系型数据库管理系统,它支持多种操作系统平台,包括Unix。SQL(Structured Query Language)是用于管理和处理数据库的标准编程语言,是DB2 UDB的核心工具。本教程...

    DB2 UDB AS400数据库性能和查询优化.rar

    本资料集“DB2 UDB AS400数据库性能和查询优化.rar”着重探讨了如何在AS/400环境中提升DB2 UDB的性能并优化查询。 1. **数据库性能优化**:性能优化涉及多个方面,如数据库设计、索引策略、存储配置、SQL语句优化等...

    DB2 UDB 珍贵资料

    8. 分布式数据库:DB2 UDB支持分布式数据库环境,可以处理跨多个节点的数据,并通过全局唯一标识符(Global Unique Identifier, GUID)确保数据的一致性。 9. XML支持:DB2 UDB内置XML数据类型,可以直接存储和检索...

    Enterprise PeopleTools 8.49 Installation for DB2 UDB for z/OS

    ### 企业级PeopleTools 8.49在DB2 UDB for z/OS上的安装 #### 背景介绍 随着信息技术的不断发展与更新迭代,企业和组织对于IT系统的依赖程度日益加深。为了满足大型企业的复杂需求,Oracle推出了针对大型主机环境...

    MySQL to DB2 UDB Conversion Guide

    ### MySQL到DB2 UDB迁移指南 #### 一、引言与概述 本文档旨在提供一个全面的指导方案,帮助用户将MySQL数据库及其应用程序迁移到IBM DB2 Universal Database (DB2 UDB)。该迁移过程不仅可以提升应用性能,还能利用...

    DB2 UDB安装指南 图解

    每一步都需要仔细操作,确保所有设置符合实际需求,从而确保DB2 UDB能稳定、高效地运行在你的环境中。通过阅读上述内容,你应该对DB2 UDB的安装有了清晰的认识,如果你有进一步的问题,可以参考提供的MHT文件进行...

    DB2 UDB 内存模型

    4. **排序区(Sort Area)**:在进行排序操作时,DB2会在内存中分配这部分空间,以避免在磁盘上创建临时文件。如果排序区不足以容纳所有数据,DB2会自动转为磁盘排序。 5. **日志缓冲区(Log Buffer)**:记录事务...

    oracle 数据库 10g 与 ibm db2 udb 技术概述.rar

    Oracle数据库10g和IBM DB2 UDB是两种在企业级数据库管理领域广泛使用的系统,它们各自具有独特的特性和优势。下面将详细阐述这两个数据库系统的技术概述。 首先,Oracle数据库10g是Oracle公司推出的一个重要的...

    DB2 UDB SQL语句的生命周期.pdf

    DB2 UDB是IBM公司开发的关系型数据库管理系统的一部分,而SQL语句是数据库操作的核心,它们的生命周期通常包含以下几个阶段:提交、分析、编译、执行、清理等。本文将详细介绍DB2 UDB处理SQL语句的整个生命周期,并...

Global site tag (gtag.js) - Google Analytics