每次看到同事寫的程式裡面有一點是我覺得很奇怪的,
明明我就是抓某個 TABLE 裡面的某些資料出來,
為什麼在 FOR LOOP 裡面要更新那一筆資料的時候,
卻還是下 UPDATE 該 TABLE 然後一堆條件呢?
所以今天在寫個 FUNC 的時候就想說來找一下,
應該會有比較
找到了下面這個說明
【[Chapter 6] 6.11 SELECT FOR UPDATE in Cursors】
看起來應該可以,試了一下,
挑了一種我覺得比較
CURSOR CUR_TEST IS
SELECT *
FROM TB_TEST
FOR UPDATE;
只要在 CURSOR 最後面加上 FOR UPDATE 就可以了,很簡單。
然後 FOR LOOP 裡面的寫法也很簡單,如下:
FOR REC_TEST IN CUR_TEST
LOOP
UPDATE TB_TEST
SET CALC_AMT = 10000000
WHERE CURRENT OF CUR_TEST;
END LOOP;
重點是 WHERE 條件的寫法 CURRENT OF CUR_TEST 就可以了,
夠簡單,讚!
進步始終來自於惰性!共勉之~~~
真的是進步始終來自於惰性!謝謝你提供的範例^^
回覆刪除