create or replace trigger tr_a after insert on a for each row begin insert into b values(:new.a1,:new.a2,...); end;
create or replace trigger aaa before insert on scott.tab1 for each row begin insert into b select * from :new; end aaa;
不好意思,还有一点搞不定,请高手继续相助,多谢: b表中有一个字段是来自于c表中的某条记录的某个字段,如何查出这个字段的值? 如果这样写: DECLARE b1 varchar2; BEGIN b1 := select c2 from c where ...; 这样的语法是错误的,那如何将查出的值赋给b1呢?
select c2 into b1 from c where ...
9i下不用触发器,使用insert all 语句同时A,B往2个表插入数据也是可以的,适用于不是在任何插入A的情况下都需要往B插入数据
create or replace trigger temp_trigger after insert on a for each row declare v_string varchar2(10); begin select c2 into v_string from c where ...; insert into b(b1,b2,b3,..) values(v_string,:new.a1,:new.a2,...); end;
after insert on a
for each row
begin
insert into b values(:new.a1,:new.a2,...);
end;
before insert
on scott.tab1
for each row
begin
insert into b select * from :new;
end aaa;
b表中有一个字段是来自于c表中的某条记录的某个字段,如何查出这个字段的值?
如果这样写:
DECLARE
b1 varchar2;
BEGIN
b1 := select c2 from c where ...;
这样的语法是错误的,那如何将查出的值赋给b1呢?
after insert on a
for each row
declare
v_string varchar2(10);
begin
select c2 into v_string from c where ...;
insert into b(b1,b2,b3,..) values(v_string,:new.a1,:new.a2,...);
end;