在 DB2 V9 for z/OS 中通过类型 2 连接支持多行获取
2010-02-05 00:00:00 来源:WEB开发网结束语
使用多行获取 (MRF),您可以获得比使用 FETCH 语句每次获取一行更佳的性能。本文帮助您理解了 MRF 及其使用方式。此外,还通过一个简单的样例 Java 程序演示如何在 Java 程序中设置 MRF,并解释如何确定是否使用了 MRF。
多行定位 UPDATE 或 DELETE
IBM Data Server Driver for JDBC and SQLJ 支持执行遵循 JDBC 1 标准的定位 UPDATE 或 DELETE 操作。对于行集游标,JDBC 1 定位更新语法必须知道行集的存在。该语法必须遵循以下格式:
update table set.... where current of cursor for row N of rowset
如果应用程序想要使用 JDBC 1 定位 UPDATE 操作,那么它必须构建正确定位的 UPDATE/DELETE 语句。
不过,当前的 t2zos 应用程序仍然使用 JDBC 1 定位 UPDATE 语句,其遵循的格式如下:
update table set....where current of cursor
因此,行集支持导致不同的行为。UPDATE 影响整个行集,而不是单个行。因此,t2zos 行集支持的默认设置为 false(见 新连接属性 小节)。
该技术涉及到使用 ResultSet.getCursorName 方法为 ResultSet 获取游标的名称,以及按照以下格式定义定位 UPDATE 或定位 DELETE 语句:
UPDATE table SET col1=value1…coln=valueN WHERE CURRENT OF cursorname
DELETE FROM table WHERE CURRENT OF cursorname
如果您使用 JDBC 1 技术对支持多行获取的数据源中的数据执行 UPDATE 或 DELETE 操作,定位 UPDATE 或 DELETE 语句可能 UPDATE 或 DELETE 多个行,尽管您可能希望它仅 UPDATE 或 DELETE 单个行。
要避免意外的 UPDATE 或 DELETE 操作,您可以采取以下措施之一:
使用可更新的 ResultSet 一次仅获取和 UPDATE 一个行。
在 UPDATE 或 DELETE 语句中使用 FOR ROW n OF ROWSET 子句, 以识别需要执行 MODIFY 或 DELETE 操作的特定行。
- ››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 的使用
更多精彩
赞助商链接