IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope:Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Information Management  >

IBM DB2 Universal Database SQL 装入、导入和导出脚本的的生成

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

Nanda PilakaIBM

2003 年 3 月 01 日

这些脚本帮您将数据从一个数据库移到另一个数据库。它可以替代 db2move 实用程序。在执行本文所提到的脚本之前,表必须存在。

简介

本文通过使用 SQL 语句描述了 DB2 UDB 中生成导入、导出或装入语句的过程。可以将这些 SQL 语句保存到下一节所描述的文件中,然后,可以在有效的 DB2 环境中运行这些文件,以自动为数据库中所有表生成导出、导入和装入语句。本文所描述的这个过程可以替代 db2move 实用程序(该程序位于 sqllib\misc 文件夹中),它还可以用来将表中的数据从一个数据库移到另一个数据库。另外,可以定制这种方法以适应生成装入/导入/导出 DDL 语句等不同的用户选择,并且在灵活性是主要考虑因素的情况下(例如,在多数据库环境中),这种定制方法是很有用的。这里假定读者意识到以下问题:导出的数据具有不同的格式(已定界的 ASCII、IXF 和 WSF)以及在执行本文中所提到的任何一个脚本之前,表必须存在。





回页首


样本文件描述

必须将生成装入、导入和导出命令的 SQL 语句保存到脚本文件中,然后可以将这些脚本文件作为输入传递给 DB2 命令行处理器来运行它们。本文用到了以下文件: ExportStmtsGen.sql

该文件包含下面这条 SQL 语句,它为数据库中的表生成导出命令。可以定制该语句以适应用户的导出操作选择。

SELECT 'EXPORT TO d:\temp\'||name||'.del
OF DEL MESSAGES d:\temp\exportmsgs.txt SELECT * FROM db2admin.'||name
FROM sysibm.systables
WHERE name in
('DEPARTMENT',
'EMP_ACT',
'EMP_PHOTO',
'EMP_RESUME',
'EMPLOYEE',
'LOADTABLE',
'ORG',
'PROJECT',
'STAFF',
'SALES');


ImportStmtsGen.sql

该文件包含下面这条 SQL 语句,它为数据库中的表生成导入命令。可以定制该语句以适应用户的导入操作选择。

SELECT 'IMPORT FROM d:\temp\'||name||'.del
OF DEL
MESSAGES d:\temp\importmsgs.txt
INSERT INTO db2admin.'||name
FROM sysibm.systables
WHERE name in
('DEPARTMENT',
'EMP_ACT',
'EMP_PHOTO',
'EMP_RESUME',
'EMPLOYEE',
'LOADTABLE',
'ORG',
'PROJECT',
'STAFF',
'SALES');


LoadStmtsGen.sql

该文件包含下面这条 SQL 语句,它为数据库中的表生成装入命令。可以定制该语句以适应用户的装入操作选择。

SELECT 'LOAD FROM d:\temp\'||name||'.del
OF DEL
MESSAGES d:\temp\loadmsgs.txt
INSERT INTO db2admin.'||name
FROM sysibm.systables
WHERE name in
('DEPARTMENT',
'EMP_ACT',
'EMP_PHOTO',
'EMP_RESUME',
'EMPLOYEE',
'LOADTABLE',
'ORG',
'PROJECT',
'STAFF',
'SALES');





回页首


先决条件

确保已经安装了DB2 UDB 客户机或 DB2 UDB 服务器代码。





回页首


生成并执行脚本

  • 创建一个工作目录,并在该目录中创建以上这些文件。
  • 要生成包含导出命令的脚本文件,在命令行中输入下面这条命令:
    db2batch -d <database name> -f ExportStmtsGen.sql -s OFF -q ON > ExportScript.sql

  • 要生成包含导入命令的脚本文件,在命令行中输入下面这条命令:
    db2batch -d <database name> -f ImportStmtsGen.sql -s OFF -q ON > ImportScript.sql

  • 要生成包含装入命令的脚本文件,在命令行中输入下面这条命令:
    db2batch -d <database name> -f LoadStmtsGen.sql -s OFF -q ON > LoadScript.sql

  • 生成以上脚本之后,要导出数据,必须创建一个到源数据库的连接。连接至源数据库,并输入下面这条命令来运行 ExportScript.sql 文件:
    db2 -vf ExportScript.sql

    源数据库中表的数据将被导出到 *.del 文件。

  • 导出数据后,要导入或装入 *.del 文件中的数据,必须连接至目标数据库。可以选择运行导入脚本或装入脚本以将数据装入到目标数据库的表中。
    • 在 DB2 命令窗口,输入下面这条命令,以执行 ImportScript.sql 文件:
      db2 -vf ImportScript.sql

    • 在 DB2 命令窗口,输入下面这条命令,以执行 LoadScrip.sql 文件:
      db2 -vf LoadScript.sql

  • 通过查看 exportmsgs.txt、importmsgs.txt 和 loadmsgs.txt 这些消息文件来检查导出、导入和装入会话的状态。




回页首


附加说明

  • 在运行装入脚本时,请确保数据库服务器机器上有数据或导出文件。为了正确运行装入命令,这是 必须的,而对于导入命令,数据或导出文件 必须位于正在发出导入命令的机器上。
  • 以上 SQL 语句所使用的是作为示例的“sample”数据库中的表。如果使用的源数据库 不是“sample”数据库,那么需要修改 *Gen.sql 文件中 SELECT 语句的 IN 子句,以表明源数据库中实际的表。
  • 关于导出、导入和装入实用程序的更多信息,请参见 IBM DB2 UDB Command Reference、IBM DB2 UDB Administration Guide 和 IBM DB2 UDB Data Movement Utilities Guide and Reference。可以在 http://www-4.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/v7pubs.d2w/en_main 上找到这些手册。


关于作者

Nanda Pilaka has authored this article




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

建议?




回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款