Oracle視圖可以由單表創建,也可以多表創建。單表創建的Oracle視圖是可以增、刪、改。多表創建的視圖是不能直接進行Oracle視圖添加等更新。
解決辦法:替代觸發器。說到這,大家可能就都知道怎麼做了。
- create or replace trigger 名稱
- Instead Of Insert or update or delete
- on 視圖
- for each row
- Declare
- begin
- If Inserting Then
- Insert Into 基本表1 (t11,t12) Values (:New.f1,:New.f2);
- Insert Into 基本表2 (t11,t22) Values (:New.f1,:New.f3);
- elsif Updating Then
- Update 基本表1 set t11=:New.f1,t12=:New.f2 where t11=:New.f1;
- Update 基本表2 set t11=:New.f1,t22=:New.f3 where t11=:New.f1;
- elsif Deleting then
- Delete from 基本表1 where t11=:Old.f1;
- Delete from 基本表2 where t11=:Old.f1;