触发器2

来源:互联网 发布:ace.min.js是什么 编辑:程序博客网 时间:2024/05/22 17:12

在视图上创建触发器

有的视图我们不能直接对其进行更新操作,但可以在这种视图上建立触发器,利用触发器对视图的基表进行更新操作

使用触发器利用表A的值去更新表B的值

create or replace trigger up_p
after update on A
for each row
declare 
begin
update  B set name =new.name where id =old.id;
end;
/

如何捕获点燃触发器的SQL语句

1,创建一个表存放从触发器中捕获的SQL语句
create table sql_trigger (username varchar2(20),machine varchar2(20),sql_statment varchar2(2000));
2,创建触发器
create or replace trigger trigger_name
after insert into A
declare 
sql_text ora_name_list_t;--系统预定义事件属性,可以看成是一种数据类型
stmt varchar2(32767);
n int;
begin
n :=ora_sql_txt(sql_text); 
for i in 1..nvl(n,0) loop
stmt :=stmt ||sql_text(i);
end loop;
dbms_output_put_line(stmt);
insert into sql_trigger(username,machine,sql_statment) values (user,sys_context('userenv','terminal'),stmt);
end;
3,查看捕获到的SQL语句
select * from sql_trigger;

在存储过程中创建触发器


0 0