私は管理する次のタスクを持っています。サーバー「A」とサーバー「B」の間にデータベースリンクがあります。これらのテーブルを指すテーブルをサーバー「A」に作成し、ビューをサーバー「B」に作成しました。
I.Ex. サーバー「A」のテーブルcustomersとサーバー「A」のテーブルを指すサーバー「B」のビューcustomers。
ビューに更新機能を提供するために、ビューに更新の代わりにトリガーを作成しました。
PROMPT CREATE OR REPLACE TRIGGER tudb_customers
CREATE OR REPLACE TRIGGER tudb_customers instead of update or delete on customers
REFERENCING NEW AS NEW OLD AS OLD
for each row
declare
proc_typ_old char;
proc_typ char;
begin
if updating then
proc_typ := 'U';
else
proc_typ := 'D';
end if;
if proc_typ = 'U' then
update customers@db_link set customersname=:new.customersname
where customersid = :old.customersid;
else
delete from customers@db_link where customersid = :old.customersid;
end if;
end TUDB_MOB_ZUG;
/
サーバー'B'のビューを更新しようとすると(customers set Customersname ='Henry'を更新します。customersid=1):old.customersidは常にnullです。したがって、更新は失敗します。
Oracleバージョンは10.2.0.1.0です
誰かがこの問題で私を助けることができますか?何か案は?
あいさつ、クリス