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 冬季祝福语大全 简短的
18 送离职同事简短祝福语