這篇文章主要為大家展示了“Oracle基于值如何審核”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Oracle基于值如何審核”這篇文章吧。
成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁(yè)設(shè)計(jì)、重慶網(wǎng)站建設(shè)公司、微信開發(fā)、微信小程序開發(fā)、集團(tuán)成都定制網(wǎng)站等服務(wù)項(xiàng)目。核心團(tuán)隊(duì)均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗(yàn),服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:成都?jí)w彩繪等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗(yàn),同時(shí)也獲得了客戶的一致贊許!
Oracle通過(guò)使用觸發(fā)器,可以實(shí)現(xiàn)基于值的審核。
基于值的審核實(shí)驗(yàn):
1、用戶scott有一張員工表emp,其中字段sal記錄了每位員工的工資信息
2、創(chuàng)建一個(gè)審核表用來(lái)記錄審核結(jié)果
create table scott.emp_sal_audit
(host varchar2(50), ip_address varchar2(20), emp_no varchar2(20), old_value number, new_value number, update_time date);
3、為表scott.emp創(chuàng)建一個(gè)觸發(fā)器,對(duì)字段sal的值的更新應(yīng)用觸發(fā),記錄更新前后值,并記錄執(zhí)行更新的客戶端信息
create or replace trigger sal_audit
after update of sal on scott.emp
for each row
begin
if :old.sal != :new.sal then
insert into scott.emp_sal_audit values
(sys_context('userenv', 'host'),
sys_context('userenv', 'ip_address'),
:new.empno,
:old.sal,
:new.sal,
sysdate);
end if;
end;
4、查詢當(dāng)前記錄,并執(zhí)行更新
select * from emp where empno=7369;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
7369 SMITH CLERK 7902 1980/12/17 800.00 20
update emp set sal=900 where empno=7369;
commit;
5、查看審核記錄
select * from emp_sal_audit;
HOST IP_ADDRESS EMP_NO OLD_VALUE NEW_VALUE UPDATE_TIME
-------------------- -------------------- ---------- ---------- ---------- --------------------
WORKGROUP\MYPC 192.168.133.1 7369 800 900 2015/9/3 16:34:27
該表記錄了執(zhí)行變更的客戶端機(jī)器、IP地址、更新前后值、更新時(shí)間等,觸發(fā)器中使用了oracle函數(shù)sys_context用來(lái)獲取系統(tǒng)環(huán)境信息。
以上是“Oracle基于值如何審核”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!