1 / 6
文档名称:

触发器.txt

格式:txt   页数:6页
下载后只包含 1 个 TXT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

触发器.txt

上传人:aluyuw1 2014/10/14 文件大小:0 KB

下载得到文件列表

触发器.txt

文档介绍

文档介绍:========语句级触发器===========
create table test_t (a number);
create or replace trigger test_trig
before insert or update or delete
on test_t
begin
if user not in ('USER1','USER2') then
raise_application_error(-20001,'you have no privilege to change this table');
-自定义复杂的安全权限
end if;
end;
=====运行:=====
SQL> show user;
USER 为"SYSTEM"
SQL> delete from ;
delete from
*
第 1 行出现错误:
ORA-20001: you have no privilege to change this table
ORA-06512: 在"", line 3
ORA-04088: 触发器'' 执行过程中出错
========语句类型判断 1==============
CREATE OR REPLACE TRIGGER trgdemo
AFTER INSERT OR UPDATE OR DELETE
ON student
BEGIN
IF UPDATING THEN
('已更新student中的数据');
ELSIF DELETING THEN
('已删除student中的数据');
ELSIF INSERTING THEN
('已在student中插入数据');
END IF;
END;
===运行:===
SQL> set serveroutput on
SQL>insert into student values('07005','bbb','male',19,'cs')
已在student中插入数据
已创建 1 行。
========语句类型判断 2 ===========
SQL> create table mylog
(curr_user varchar2(10),
curr_date date,
act char(1));
表已创建。
create or replace _trig
after insert or update or delete on student
begin
if inserting then
insert into mylog values(user,sysdate,'I');
elsif updating then
insert into mylog values(user,sysdate,'U');
else insert into mylog values (user,sysdate,'D');
-提供日志记录
end if;
end;