COBOL-DB2程序中“ FOR UPDATE OF”子句的目的和用途是什么

问题:游标中“ FOR UPDATE OF”子句的目的是什么?如果在COBOL-DB2程序中不使用此子句就触发UPDATE语句,将会发生什么情况?

游标声明中提供了“ FOR UPDATE OF”子句,当我们要更新表时使用它。所有需要更新的列都应在游标声明中给出。

一旦打开游标,“ FOR UPDATE OF”子句将在所有符合条件的行上放置排他锁。我们也可以不使用“ FOR UPDATE CLAUSE”来更新表,但是在那种情况下,仅当执行UPDATE查询时,排他锁才会放在行上。例如-如果我们想更新所有ORDER_DATE为2020年9月15日的条目的ORDERS表,那么我们将编写如下的更新游标。

示例

EXEC SQL

DECLARE ORDER_CUR CURSOR WITH HOLD FOR

   SELECT * FROM ORDERS WHERE ORDER_DATE = ‘2020-09-15’

      FOR UPDATE OF ORDER_TOTAL, ORDER_STATUS

END-EXEC

此查询将对ORDERS表的所有行(具有ORDER_DATE的日期为2020年9月15日)施加排他锁。但是,如果我们要更新此表的所有列,则不必在“ FOR UPDATE”中提供任何列名。 OF”子句。

也可以声明一个SELECT游标,并一次对一行使用UPDATE查询。但是在这种情况下,一旦执行UPDATE查询,排他锁将一次仅放置在一行上。

以上是 COBOL-DB2程序中“ FOR UPDATE OF”子句的目的和用途是什么 的全部内容, 来源链接: utcz.com/z/316028.html

回到顶部