我有以下任务要管理。我们在服务器“A”和服务器“B”之间有一个数据库链接。我在服务器“A”上创建了表,并在服务器“B”上创建了指向这些表的视图。
前。服务器“A”上的客户表和服务器“B”上指向服务器“A”上的表的客户视图。
为了在视图上提供更新功能,我在视图上创建了一个代替更新触发器:
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”上的视图(更新客户设置客户名称 =“亨利”,其中客户 ID = 1):old.customersid 始终为空。所以更新失败。
Oracle版本是10.2.0.1.0
任何人都可以在这件事上帮助我吗?有任何想法吗?
问候,克里斯