在 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 操作的特定行。
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››Form Reset Function
- ››OSC“回到顶部”代码
- ››db2 命令选项解释
- ››OSCHINA 使用 Github 登录的源码
- ››FOREACH 宏之GCC实现
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
更多精彩
赞助商链接