- --1.表结构语句
- --创建测试表
- CREATE TABLE test ( t_id NUMBER(4), t_name VARCHAR2(20), t_age NUMBER(2), t_sex CHAR );
- --创建记录测试表
- CREATE TABLE test_log ( l_user VARCHAR2(15), l_type VARCHAR2(15), l_date VARCHAR2(30) );
- -- 创建序列
- create sequence TEST_LOG_SQ
- minvalue 1
- maxvalue 99999999
- start with 1
- increment by 1
- nocache
- order;
- --2.触发器语句
- create or replace trigger test_trigger
- after DELETE OR INSERT OR UPDATE ON TEST
- --FOR EACH ROW
- DECLARE
- v_type test_log.L_TYPE%TYPE;--如果字段类型改变,脚本不需要改
- --row_count number;
- BEGIN
- -- row_count := 200;
- if INSERTing then
- v_type := 'insert';
- elsif updating then
- v_type := 'update';
- elsif deleting then
- v_type := 'delete';
- end if;
- INSERT INTO TEST_LOG (L_USER, L_TYPE, L_DATE) VALUES ('user'||TEST_LOG_SQ.nextval, v_type, TO_CHAR(sysdate,'yyyy-mm-dd hh24:mi:ss'));
- dbms_output.put_line('触发器执行完成'||v_type);
- END;
- --3.注意问题
- --a.从网上copy代码可能有特殊字符导致编译错误,最好手动输入。
- --b.语句块中elsif关键字不是“elseif”
- --if a=.. then
- --......
- --elsif a=.. then
- --....
- --end if;
- --c.触发器建立,默认的名称是大写的。
- --4.查询触发器信息
- select * from all_source where type='TRIGGER' AND name='TEST_TRIGGER';
- --该片段来自于http://www.codesnippet.cn/detail/1507201614866.html
来源: http://www.codesnippet.cn/detail/1507201614866.html