1
假設程序中有更新查詢。如何檢查數據是否更新?假設過程中有更新查詢。如何檢查數據是否更新?
假設程序中有更新查詢。如何檢查數據是否更新?假設過程中有更新查詢。如何檢查數據是否更新?
如果調用DML PL/SQL程序內,要檢查是否有任何數據進行了更新,那麼你可以使用隱式遊標屬性%的行數。你需要在DML之後立即調用它。
update table
set some_column = 'Some value'
where id = p_id;
if sql%rowcount = 0 then
dbms_output.put_line('No rows have been updated')
elsif sql%rowcount = 1 then
dbms_output.put_line('1 row has been updated')
else
dbms_output.put_line(sql%rowcount||' rows have been updated')
end if;
由於Gordon評論說所有Oracle命令都符合ACID標準,因此如果事務完成並提交,那麼您可以觸發選擇查詢來檢查更新是否完成。您可以使用ORA_ROWSCN
查看更改。事情是這樣的:
SQL> select ora_rowscn from myTable
2 where column2 = 102
3/
ORA_ROWSCN
----------
33526761
SQL> update myTable
2 set column1 = 1
3 where column2 = 102
4/
1 row updated.
SQL> commit
2/
Commit complete.
SQL> select ora_rowscn from myTable
2 where column2 = 102
3/
ORA_ROWSCN
----------
33435234
SQL>
不使用觸發器。 –
如果事務提交,數據更新。 Oracle符合ACID標準:http://en.wikipedia.org/wiki/ACID。你可以使用'select'來看結果。 –
例如條件代碼(if)中的UPDATE,還是始終執行? – jarlh