如何在 Windows CMD 里面用命令行操
作 DB2 数据库
尽管 DB2 脚本可以包含 SQL 语句、DB2 系统命令和操作系统命令,
但它只是有一个或多个 DB2 命令的文本文件。虽然不是必需的,但
通过使用适当的文件扩展名形成一个标准的 DB2 脚本命名约定通常
是个很好的方法。 表 1 显示了几种最常用的文件扩展名。
表 1. 脚本的常用文件扩展名
文件扩展名 描述 .db2 包含 DB2 命令的 DB2 脚本 .ddl 包含数
据定义语言(DDL)语句的 DB2 脚本 .sql 包含 SQL 语句的 DB2 脚
本
作为说明之用, 清单 1 包含一个非常简单的 DB2 脚本,该脚本使
用数个 DB2 命令备份 sample 数据库。可以从任一 DB2 命令行工具
执行该脚本。本文中用到的全部脚本都可以 下载。这些脚本使用缺
省的 DB2 实例(DB2)和样本数据库(SAMPLE)。其中的一些脚本将
要求您安装 Windows 资源包(Windows Resource Kit)。
清单 1. 备份 sample 数据库的样本 DB2 脚本(db2backup.db2)
-- -- This is a sample DB2 Backup Script -- ATTACH TO DB2; BACKUP
DATABASE SAMPLE; DETACH; TERMINATE;
您可以使用以下语法从 DB2 命令窗口执行以上 DB2 脚本:
db2 -tvf db2backup.db2 -l db2backup.log -r db2backup.rpt
在上面的示例中,使用了以下 DB2 命令选项来执行 DB2 脚本文件
( db2backup.db2 ):
-t 指明在缺省情况下用分号(;)终止每条命令
-v 指明应将每条命令显示到标准输出
-f 指明从输入文件读取命令
-l 指明将命令记录到输出文件中
-r 指明将结果保存到报告文件中
使用 -l 选项将所有 DB2 命令记录到日志文件
( db2backup.log )并且使用 -r 选项将命令的输出保存到报
告文件( db2backup.rpt ),这始终是一个很好的方法。这两个
选项的区别在于:
-l 选项记录每条命令的开始和结束并记录日期和时间
-r 选项将每条命令的输出保存到文件中。
同时使用这两个选项可以让您利用报告文件查看脚本的执行摘要,并
利用日志文件查看每条命令的详细信息。
也可以从 Windows shell 调用 DB2 命令窗口本身,只需从 Windows
shell (命令提示符)输入 db2cmd 即可。它有一些有用的开关,
可以在调用它时向它传递这些开关。 表 2 描述了这些选项:
表 2. DB2 命令窗口的选项
开关 描述 -c 执行 DB2 命令窗口,然后终止。 -w 一直等到 DB2
命令窗口终止。 -i 从进行调用的 shell 继承环境。 -t 从进行调
用的 shell 继承标题。
通过首先调用 DB2 命令窗口,您可以从任一 Windows shell 执行
清单 1 中的脚本,如下面的示例所示:
db2cmd -c -w -i db2 -tvf db2backup.db2 -l db2backup.log -r
db2backup.rpt
DB2 命令窗口提供所执行的每条命令的返回码。表 3列出了返回码。
表 3. DB2 CLP 返回码
代码 描述 0 成功执行 DB2 命令或 SQL 语句 1 SELECT 或
FETCH 语句没有返回任何行 2 DB2 命令或 SQL 语句警告 4 DB2 命
令或 SQL 语句错误 8 命令行处理器系统错误
注:如果您正用交互方式执行语句,那么 DB2 CLP 不会提供每条命
令的返回码。
DB2 系统命令
DB2 系统命令是一组命令行实用程序,您可以用来执行那些由于种种
原因尚未集成到 DB2 控制中心或其它 GUI 工具的任务。通常从操作
系统 shell (如Windows 命令提示符)调用 DB2 系统命令,但也可
以从 DB2 命令中心、DB2 任务中心、DB2 CLP、DB2 命令窗口,当然