IBM db2,SQL-脚本中的事务

IBM db2, transactions in SQL-Scripts

我正在寻找在 IBM SQL-Scripts 程序中处理事务的选项。 为了进行比较,我在我正在谈论的 SQL-Scripts-Program 上添加了一张图片。

此外,我还想使用 RPG(免费)以编程方式实现这些交易。这怎么可能?

参见compound (dynamic)声明

请注意,您需要在 SQL 编辑器中使用 ; 以外的语句终止符。 @是常用的
此外,如果您使用 IBM Data Studio,您将获得本地语法解析,这将帮助您发现代码中的任何语法错误。

您同时提到了 运行 SQL Scripts 实用程序和 RPG。

你基本上在任何一个地方都有两个选择。

  1. 更改默认隔离级别
  2. with 子句添加到各个语句以覆盖默认值。

对于运行 SQL 脚本,默认配置在JDBC 连接中。

对于SQLRPGLE,可以设置默认

  • 编译时,通过CRTSQLRPGI命令的COMMIT()参数
  • 通过在源代码中使用 SET OPION SQL 语句

SET OPTION 是首选,除非您有一个 CMS 可以确保 CRTSQLRPGI 命令始终正确发出。

exec SQL
 set option commit = *CHG;

注意SET OPTION语句是编译时的,不是运行时的语句。它必须是 SQLRPGLE 模块中物理上第一个 SQL 语句。您只能拥有一个,并且对整个模块有效。

不考虑默认的 isolation/commitment 等级。您可以使用 WITH 子句为给定语句设置级别。

update mytable
  set mycolumn = 1
  with chg;

最后,请注意,为了使用承诺控制,您的 table 必须被记录下来。