|  | 将应用程序的 SQL 绑定到数据库包
在最新发行版中,pureQuery for .NET 技术利用 db2cap 实用工具(它是作为 DB2 的 CLI/ODBC Static Profiling 特性的一部分引入的)将捕获的 SQL 绑定到一个或多个数据库包中。该实用工具包含在以下产品中:
- IBM DB2 Connect
- IBM Data Server client
- IBM Data Server Runtime Client
- DB2 for Linux, UNIX, and Windows
db2cap 实用工具接受以下程序参数:
db2cap [-h | -?] bind capture-file -d db-alias [-u userid [-p password]] |
capture-file 标识 pureQuery SQL
捕获文件。db-alias 标识目标数据库,db2cap 实用工具将在这里根据存储在 capture-file 中的信息创建数据库包。注意,要将包绑定到远程数据库,该数据库需要在本地编制有目录。
db2cap 使用 userid 和 password 凭证连接到目标数据库并执行绑定操作。要顺利执行绑定操作,用户必须具有以下权限:
- 能够访问捕获文件中的 SQL 语句引用的任何数据对象
- 有足够的权限设置 OWNER 和 QUALIFIER 等绑定选项(如果它们不同于
userid)
- 如果是第一次绑定包,则需要 BINDADD 授权;否则,需要 BIND 授权
将捕获的 SQL 绑定到数据库包
为了将捕获的 SQL 绑定到数据库包,需要:
- 打开一个 DB2 命令窗口。
- 调用
db2cap 实用工具并指定捕获文件名以及目标数据库包名。db2cap bind c:\myapp.xml -d GSDB |
绑定操作应该成功完成。
图 8. db2cap 绑定实用工具的输出
-
db2cap 在处理捕获文件时会更新它。我们来看看发生了哪些变化。打开您在 pureQueryXml 属性值中指定的文件。其中添加了一个一致性标记,用于惟一标识包的版本。每个 SQL 都分配了一个 section number,用于支持在运行时静态地执行 SQL。
图 9. 更新后的 pureQuery SQL 捕获文件
现在,您已经创建了一个数据库包,并且可以验证它包含您所捕获的 SQL。
验证数据库包
对 GSDB 数据库运行以下查询,检索刚才创建的包中的语句。
SELECT PKGSCHEMA,PKGNAME,TEXT
FROM SYSCAT.STATEMENTS
WHERE PKGSCHEMA = 'NULLID' AND PKGNAME LIKE 'TOOT%' |
如果您使用的是 testconn20.exe 应用程序,该查询应返回两行:
NULLID TOOT1 DECLARE SQLCURCAPCS0 CURSOR WITH HOLD FOR SELECT *
FROM SYSIBM.SYSTABLES FETCH FIRST 5 rows only
NULLID TOOT1 CALL SYSIBM.SQLTABLES(:H00002 :H00001,:H00003 :H00001,:H00004
:H00001,:H00005 :H00001,:H00006 :H00001)
|
现在,您已经成功创建了所需的数据库包,IBM Data Server Provider 将使用它们静态执行这些语句。
|  |
|