如何在 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 命令窗口,当然