我想通過調用另一個函數來訪問新插入的數據的插入操作後執行一個函數。這就是爲什麼我不能使用後插入觸發器。因爲內部函數沒有用「:new」訪問數據。 有沒有辦法先插入依賴於觸發器,然後執行一個函數?插入後執行的函數
trigger insert_to_A after insert on tableX for each row
begin
insert into tableA values (function1(:new.field1));
end;
create or replace function function1(abc number) return number as
begin
select nvl(field1,-1)
into nMax1
from tableX
where field1= abc;
end;
因此,期函數試圖訪問的TableX在它的身上,我相信這就是問題所在。我希望能夠清除它。
請您詳細說明一下。目前尚不清楚你的具體要求是什麼。你想讓插入的行以不同的方式處理它嗎?如果是的話,你可以使用'RETURNING INTO'子句。看看這裏的例子http://lalitkumarb.com/2015/04/07/returning-the-sequence-number-of-identity-column-after-insert/ –
我不認爲這與什麼有關我試圖以任何方式解釋。我想在插入操作後執行一個函數。但我希望它的插入操作和觸發器不以原子方式執行。我希望首先插入操作,以便我可以在不使用「:new」關鍵字的情況下在表的新狀態(插入新行)上運行函數。我希望這可以讓我更清楚 – Sammy
也許一個例子會更好。如果你可以**編輯你的問題並添加一個測試用例**。我仍然困惑你的流程。桌子上已經有觸發器在做什麼了?什麼是要做的功能? –