Oracle 起步日記(7) 觸發器

2021-06-03 18:52:07 字數 1162 閱讀 3459

觸發器是被隱含執行的儲存過程

在為某物件建立觸發器時,首先要保證物件不屬於sys使用者

因為不可對sys擁有的物件建立觸發器

1) 建立before觸發器

create or replace trigger tr_fmodify_student

before update on student

begin

if to_char(sysdate,』dy』,'nls_date_language = american』) in (『fri』) then

end if;

end;

其中dy表星期的簡寫

nls_date_language是不同系統之間時間轉換

例子中是英文顯示,在網上搜了一下還有例如中文和日文的顯示,貼一下~

'nls_date_language = japanese'

'nls_date_language = ''simplified chinese'''——這裡有多個單引號 需要注意下~

裡面的錯誤**和內容,都是自定義的。說明是自定義,當然就不是系統中已經命名存在的錯誤類別,是屬於一種自定義事務錯誤型別,才呼叫此函式。

error_number_in 只容許從 -20000 到 -20999 之間,這樣就不會與 oracle 的任何錯誤**發生衝突。

error_msg_in 的長度不能超過 2k,否則擷取 2k。

2) 建立after觸發器——在執行了dml語句後被觸發的觸發器

create or replace trigger tr_insert

after insert on student

begin

dbms_output.put_line(『資料已插入』);

end;

3) 建立行觸發器——在執行dml語句時,每作用一行被觸發一次的觸發器

create or replace trigger tr_id

after insert on student

begin

if :new.id<= 3 then

dbms_output.put_line(『id < 3』);

end if;

end;

4) 刪除觸發器

drop trigger tr_fmodify_student;

ORACLE觸發器 行級觸發器

行級觸發器 本章介紹行級觸發器機制。大部分例子以insert出發器給出,行級觸發器可從insert update delete語句觸發。1 介紹 觸發器是儲存在資料庫已編譯的儲存過程,使用的語言是pl sql,用編寫儲存過程一樣的方式編寫和編譯觸發器。下面在sql plus會話中建立和示例乙個簡單的...

Oracle觸發器介紹 行級觸發器

行級觸發器 本章介紹行級觸發器機制。大部分例子以insert出發器給出,行級觸發器可從insert update delete語句觸發。1 介紹 觸 髮器是儲存在資料庫已編譯的儲存過程,使用的語言是pl sql,用編寫儲存過程一樣的方式編寫和編譯觸發器。下面在sql plus會話中建立和示例一 個簡...

Oracle觸發器簡介 建立 使用觸發器

觸發器類似與儲存過程,都是為了實現特殊功能而執行的 塊。觸發器不允許使用者顯示傳遞引數,不能夠返回引數值,不允許使用者呼叫觸發器。觸發器只是在oracle合適的時間自動呼叫,非常類似於面向程式設計中的 觸發器按照觸發事件型別 物件不同分為 語句觸發器,行觸發器,instead of觸發器,系統事件觸...