COBOL-DB2程序中“ FOR UPDATE OF”子句的目的和用途是什么
问题:游标中“FORUPDATEOF”子句的目的是什么?如果在COBOL-DB2程序中不使用此子句就触发UPDATE语句,将会发生什么情况?
解
游标声明中提供了“FORUPDATEOF”子句,当我们要更新表时使用它。所有需要更新的列都应在游标声明中给出。
一旦打开游标,“FORUPDATEOF”子句将在所有符合条件的行上放置排他锁。我们也可以不使用“FORUPDATECLAUSE”来更新表,但是在那种情况下,仅当执行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日)施加排他锁。但是,如果我们要更新此表的所有列,则不必在“FORUPDATE”中提供任何列名。OF”子句。
也可以声明一个SELECT游标,并一次对一行使用UPDATE查询。但是在这种情况下,一旦执行UPDATE查询,排他锁将一次仅放置在一行上。
热门推荐
10 儿子立冬祝福语简短独特
11 对当兵的祝福语简短
12 侄儿高考试祝福语简短
13 伴郎红包祝福语朋友简短
14 媳妇生日简短祝福语朋友
15 公司年会祝福语简短最好
16 元旦感恩祝福语简短大全
17 红包祝福语简短10字
18 周六早晨祝福语简短