在 DB2 V9 for z/OS 中通过类型 2 连接支持多行获取
2010-02-05 00:00:00 来源:WEB开发网如何确定是否对获取使用 MRF
在包含 IBM DB2 Driver for JDBC and SQLJ 版本 3.7.xx、3.51.xx、4.1.xx 或更新版本的 T2zos (DB2 V9 for z/OS) 机器上运行 清单 1 中的样例程序。找到名为 jccTrace.txt 的 JCC 跟踪文件。如前所述,在支持 MRF 的 T2zos 服务器上,如果 enableRowsetSupport 设置为 YES,T2zos 为游标准备 WITH ROWSET POSITIONING。
如果 jccTrace.txt 跟踪文件包含字符串 WITH ROWSET POSITIONING,这意味着启用了 MRF。如果没有启用 MRF,准备 FETCH 语句时将不包含行集定位。所以在这个例子中,您不能在跟踪文件中找到字符串 WITH ROWSET POSITIONING。
您还可以通过调用 ResultSet.getFetchSize() 确定特定 ResultSet 的 MRF 是否处于活动状态。如果 fetchSize 的返回值大于 1,那么就使用了 MRF。注意,这是 ResultSet 而不是 PreparedStatement 上的调用。
限制
由于受到 DB2 的限制,行集游标(MRF)与 T2zos (Fetch Continue) 中的渐进式流不兼容。
在 T2zos 中,如果您将 enableRowsetSupport 设置为 YES,并且服务器支持 MRF,那么 T2zos 将为游标准备 WITH ROWSET POSITIONING。不过,如果在游标中出现大对象或 XML,并且渐进式流使用默认值或设置为 on,将对 FETCH 语句关闭 MRF(OFF )。将重新准备 FETCH 语句,并且不包含行集定位。
T2zos 不知道从存储过程返回的游标是不是一个行集,因此 t2zos 驱动程序仅允许对存储过程执行单行获取。
T2zos 不支持从存储过程返回的并且是渐进式流形式的大对象或 XML。在获取继续 (T2zosCursor.getMoreData_) 调用期间,该情况可能导致抛出 -225 sqlcode。
如果游标中出现大对象或 XML,T2zos java 存储过程将关闭行集支持。
- ››FOREACH 宏之GCC实现
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
- ››DB2 pureScale 实战
- ››DB2 存储过程中如何使用 Optimization Profile
- ››DB2 pureScale 新特性 -- Member Restart
- ››DB2 Express-C 9.7.2 新增特性
- ››DB2 9.7 新特性 - 内联 LOB 的使用
赞助商链接