COBOL-DB2 程序中 “WHERE CURRENT OF” 子句的用途和用法是什么?


UPDATE 语句执行后,“WHERE CURRENT OF”子句将为该行添加独占锁。“WHERE CURRENT OF”子句将指向游标最近获取的行。

我们可以使用以下方式在游标中使用 “WHERE CURRENT OF”来更新行。

  • 游标定义。

EXEC SQL
DECLARE ORDER_CUR CURSOR FOR
SELECT ORDER_ID, TRANSACTION_ID FROM ORDERS
WHERE ORDER_DATE = ‘2020-07-28’
END-EXEC
  • OPEN 游标

EXEC SQL
OPEN ORDER_CUR
END-EXEC
  • FETCH 游标和更新行

SET WF-END-CURSOR-N TO TRUE
   PERFORM UNTIL WF-END-CURSOR-Y
   EXEC SQL
   FETCH ORDER_CUR INTO :ORDER-ID, :TRANSACTION-ID
END-EXEC
IF TRANSACTION-ID NOT = SPACES
   EXEC SQL
  UPDATE ORDERS SET IS_PAID = ‘YES’
WHERE CURRENT OF ORDER_CUR
END-EXEC
ELSE
CONTINUE
END-IF
END-PERFORM

更新于: 15-Sep-2020

5K+ 浏览

开启你的 职业

完成课程即可获得认证

开始
广告