Oracle中的instead of觸發器


Instead of : 用Trigger的內容替換 事件本身的動作,該觸發器用在視圖上,舉例:

一:創建一個update替代觸發器

(1)創建一個視圖

1 create or replace view my_view
2 as
3 select id,name from my_table;

查詢到視圖中的數據如下圖:

(2)創建一個update替代觸發器,當update視圖數據時觸發,打印輸出下列紅色字體語句,來代替更新視圖數據

1 create or replace trigger u_trigger
2 instead of
3 update on my_view
4 for each row
5    
6 begin
7   dbms_output.put_line('執行update替代觸發器!');
8 end;

(3)執行SQL語句,並查看結果,紅色框是觸發器觸發時輸出的結果

 

二:創建一個delete替代觸發器

 (1)創建一個視圖

1 create or replace view my_view
2 as
3 select id,name from my_table;

查詢到視圖中的數據如下圖:

(2)創建一個delete替代觸發器,當delete視圖數據時觸發,打印輸出下列紅色字體語句,來代替刪除視圖數據

1 create or replace trigger d_trigger
2 instead of
3 delete on my_view
4 for each row
5   
6 begin
7   dbms_output.put_line('執行delete替代觸發器!');
8 end;

(3)執行SQL語句,並查看結果,紅色框是觸發器觸發時輸出的結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM