在使用DB2數據庫中的游標時,您可能會有這些問題:如果對一個表設置了游標,可不可以同時對這個表進行update操作? 怎麼樣操作才不會影響游標的位置? 本文將為您講解處理的方法,供您參考。
使用定位操作更改行
可更新游標支持通過游標更新行的數據修改語句。當定位在可更新游標中的某行上時,您可以執行更新或刪除操作,這些操作針對用於在游標中建立當前行的基表行。
這些就稱為定位更新。
定位更新在打開游標的同一個連接上執行。
這就允許數據修改共享與游標相同的事務空間,並且使游標保持的鎖不會阻止更新。
有兩種方法在游標中執行定位更新:
UPDATE 或 DELETE 語句中的 Transact-SQL WHERE CURRENT OF 子句。
數據庫 API 定位更新函數或方法,如 ODBC SQLSetPos 函數。
使用 Transact-SQL 執行定位更新
Transact-SQL WHERE CURRENT OF 子句典型用於 Transact-SQL 存儲過程、觸發器以及腳本
當需要根據游標中特定行進行修改時)。存儲過程、觸發器、或腳本將:
DECLARE 和 OPEN 游標。
用 FETCH 語句在游標中定位於一行。
用 WHERE CURRENT OF 子句執行 UPDATE 或 DELETE 語句。用 DECLARE 語句中的 cursor_name
作為 WHERE CURRENT OF 子句中的 cursor_name。
例程:
declare cursor_name cursor for