:new --為乙個引用最新的列值;
:old --為乙個引用以前的列值; 這兩個變數只有在使用了關鍵字 "for each row"時才存在.且update語句兩個都有,而insert只有:new ,delect 只有:old;
系統中的觸發器例項:
create or replace trigger jbpm.tib_deploybymove***** before --before表示在操作完成前觸發,after表示在完成後觸發
insert --發生插入資料操作觸發
on jbpm.deploybymove***** for each row--指定觸發器每行觸發一次
declare
integrity_error exception; --使用者自定義錯誤
errno integer;
errmsg char(200);
dummy integer;
found boolean;
row_count number;
max_num deploybymove*****.num%type; --根據表的字段定義變數型別
zero_today deploybymove*****.num%type;
begin
-- column "id" uses sequence sequence_38
case
when inserting then --sql語句只能使用:new特殊變數
select sequence_38.nextval into :new.id from dual;--主鍵自增
zero_today :='0391'||to_char(sysdate,'yymmdd')||lpad(to_char(0),4,'0');--lpad函式定義字串長度 為4不足時用0補全
select count(*) into row_count from deploybymove*****;
if row_count = 0 then
max_num:=zero_today;--:=給變數賦值
else
select max(num) into max_num from deploybymove*****;
end if;
if max_num
檢視某個表的觸發器
select * from all_triggers
where table_name =upper( 'tbname ')
oracle 函式和觸發器
create orreplace function edubis.getpxfx v pxfx in varchar2 return varchar2 is pxfx varchar2 1000 begin select wm concat b.codename into pxfx from sel...
ORACLE觸發器 行級觸發器
行級觸發器 本章介紹行級觸發器機制。大部分例子以insert出發器給出,行級觸發器可從insert update delete語句觸發。1 介紹 觸發器是儲存在資料庫已編譯的儲存過程,使用的語言是pl sql,用編寫儲存過程一樣的方式編寫和編譯觸發器。下面在sql plus會話中建立和示例乙個簡單的...
Oracle觸發器介紹 行級觸發器
行級觸發器 本章介紹行級觸發器機制。大部分例子以insert出發器給出,行級觸發器可從insert update delete語句觸發。1 介紹 觸 髮器是儲存在資料庫已編譯的儲存過程,使用的語言是pl sql,用編寫儲存過程一樣的方式編寫和編譯觸發器。下面在sql plus會話中建立和示例一 個簡...