2011-08-17 46 views
2

是否有可能以某種方式記錄什麼是SQL語句的結果,例如:跟蹤瞭解一個SQL查詢實際上並(插入/更新/刪除)在甲骨文

INSERT INTO bonus SELECT ename, job, sal, comm FROM emp 
WHERE comm > sal * 0.25; 

如何獲得該行認爲被插入(或更新或刪除,如果它是另一個查詢的話),而不是僅僅是「插入5行」。如果能夠以SQL形式獲得更改將會特別好。

回答

1

這適用於SQL Server,但恐怕我不知道Oracle的等價物。 (你正在尋找不什麼,我知道,但它可能讓你更接近......)

create table foo (
    bar int 
) 

insert into foo 
output inserted.* 
values (1) 

update foo 
set bar = bar + 1 
output deleted.*, inserted.* 

delete 
from foo 
output deleted.* 

我所知道的是Oracle SQL%ROWCOUNT變量:Number of rows affected by an UPDATE in PL/SQL

編輯

甲骨文確實有一個等效,返回的條款:http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/returninginto_clause.htm

+0

RETURNING似乎正是我要找的,謝謝! – kaze