欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

db2将非 Unicode 数据库转换为 Unicode 数据库 博客分类: db2 db2Unicodedb2movedb2look 

程序员文章站 2024-03-23 09:05:58
...

将非 Unicode 数据库转换为 Unicode 数据库

在某些情况下,可能需要将现有非 Unicode 数据库转换为 Unicode 数据库。

关于此任务

下列步骤演示了如何将现有非 Unicode 数据库转换为 Unicode 数据库:

开始之前

必须具有足够的可用磁盘空间以从非 Unicode 数据库中导出数据。此外,如果未在复用现有表空间,那么还需要足够的可用磁盘空间来为数据创建新的表空间。

过程

  1. 使用 db2move 命令导出数据:
          cd <export-dir>
       db2move sample export
    其中 <export-dir> 是要将数据导出至的目录,而 SAMPLE 是现有数据库名称。
  2. 使用 db2look 命令为现有数据库生成 DDL 脚本:
          db2look -d sample -e -o unidb.ddl -l -x -f
    其中 SAMPLE 是现有数据库名称,而 unidb.ddl 是生成的 DDL 脚本的文件名。-l 选项为用户定义的表空间、数据库分区组和缓冲池生成 DDL,-x 选项生成授权 DDL,而 -f 选项为数据库配置参数生成更新命令。
  3. 创建 Unicode 数据库:
       CREATE DATABASE UNIDB COLLATE USING SYSTEM_codepage_territory
    其中 UNIDB 是 Unicode 数据库的名称,而 SYSTEM_codepage_territory 是语言感知的整理,它基于整理非 Unicode 数据时使用的权重表。这将确保新 Unicode 数据库中的数据的排序顺序相同。
  4. 编辑 unidb.ddl 脚本:
    1. 将出现的所有数据库名称更改为新的 Unicode 数据库名称:
            CONNECT TO UNIDB
    2. 增大表中的字符列的列长度。当字符转换为 Unicode 时,字节数可能增多。建议您将字符列的长度增大到能容纳增加的字节数。
    3. 要保留现有数据库,还必须在 unidb.ddl 文件中更改表空间的文件名规范。否则,可以删除现有数据库并使用相同的表空间文件:
         DROP DATABASE SAMPLE
  5. 通过运行已编辑的 DDL 脚本来重新创建数据库结构:
          db2 -tvf unidb.ddl
  6. 使用 db2move 命令将数据导入到新的 Unicode 数据库中:
          cd <export-dir>
          db2move unidb import
    其中 <export-dir> 是已导出数据的目录,而 UNIDB 是 Unicode 数据库名称。