Oracle之觸發器
1. 用觸發器跟蹤對錶EMP的DML操作資訊,提供審計和日誌記錄。(提示:使用觸發器謂詞) n 插入測試: Create table temp(aa varchar2(100));
Insert into emp(empno,ename,job,sal) values(7962,'ROSE', 'CLERK', 2100); 執行結果如下: 已在 EMP表 中插入資料! -- 刪除測試: Delete from emp where empno=7962; 執行結果如下: 已刪除 EMP表 中的資料! -- 修改測試: Update emp set sal=2000 where empno=7962; 執行結果如下: 已更新 EMP表 中的資料!
Set serverouput on create or replace trigger change_emp before insert or delete or update on emp for each row declare result varchar2(50); begin If inserting then result:=to_char(sysdate,'YY_MON_DD HH24:MI:SS')||'已經向EMP表中插入'||:new.empno||'記錄!'; elsif deleting then result:=to_char(sysdate,'YY_MON_DD HH24:MI:SS')||'已經從EMP表中刪除'||:old.empno||'記錄!'; elsif updating then result:=to_char(sysdate,'YY_MON_DD HH24:MI:SS')||'已經在EMP表中更新'||:old.empno||'記錄!'; end If; dbms_output.put_line(result); insert into temp values(result); end;
2. 建立觸發器CHECK_SAL,禁示對職務為CLERK的僱員的工資修改值超出1000至2000的範圍,即CLERK職務員工的修改後工資值只能在1000~2000之間。要求測試該觸發器。
create or replace trigger update_clerk_sal before update on emp for each row declare result varchar2(100); begin if lower(:old.job)='clerk' then if :new.sal>2000 or :new.sal<1000 then raise_application_error(-20000,:old.empno||'的工資修改不符合規定,只能位於1000-2000!'); end if; end if; end;
update emp set sal=sal+1 where empno=7962 update emp set sal=sal-1001 where empno=7962 update emp set sal=sal-1 where empno=7962 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27042095/viewspace-739588/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle觸發器Oracle觸發器
- Oracle觸發器觸發級別Oracle觸發器
- ORACLE DDL觸發器Oracle觸發器
- oracle ddl 觸發器Oracle觸發器
- Oracle觸發器6(建立系統事件觸發器)Oracle觸發器事件
- 根據業務寫觸發器(oracle觸發器片)觸發器Oracle
- 【SQL Server】-- 一觸即發之觸發器SQLServer觸發器
- ORACLE觸發器詳解Oracle觸發器
- Oracle登陸觸發器Oracle觸發器
- oracle 觸發器-表同步Oracle觸發器
- Oracle 登入觸發器Oracle觸發器
- oracle 觸發器 client 事件Oracle觸發器client事件
- Oracle開發基礎-觸發器Oracle觸發器
- oracle 批量刪除觸發器Oracle觸發器
- oracle 觸發器的例項Oracle觸發器
- Oracle 觸發器 限制DDL操作Oracle觸發器
- SqlServer基礎之(觸發器)SQLServer觸發器
- Oracle 觸發器中使用遊標Oracle觸發器
- Oracle觸發器詳細介紹Oracle觸發器
- Mysql之觸發器triggerMySql觸發器
- oracle儲存過程和觸發器Oracle儲存過程觸發器
- Oracle中觸發器的應用 (zt)Oracle觸發器
- oracle觸發器~ 更新多表的問題Oracle觸發器
- oracle trigger觸發器這servererrorOracle觸發器ServerError
- Oracle Instead of 觸發器的使用Oracle觸發器
- ORACLE 觸發器控制使用者登入之許可權限制Oracle觸發器
- 25. 使用MySQL之使用觸發器MySql觸發器
- Oracle資料庫DDL審計觸發器觸發的bug問題Oracle資料庫觸發器
- DB2開發系列之四——觸發器DB2觸發器
- 禁止oracle表的觸發器triggerOracle觸發器
- ORACLE 觸發器語法及例項 一Oracle觸發器
- ORACLE 觸發器語法及例項 二Oracle觸發器
- ORACLE 觸發器語法及例項 三Oracle觸發器
- oracle 觸發器 和 常用內建程式包Oracle觸發器
- Oracle觸發器死鎖問題解決Oracle觸發器
- 監控oracle的觸發器語句(轉)Oracle觸發器
- mysql——觸發器MySql觸發器
- mysql 觸發器MySql觸發器