觸發器:存放在資料庫中,並被隱含執行的儲存過程。
由觸發事件,觸發條件,觸發操作組成。
dml觸發器:指定觸發器時機(before or after),觸發事件(insert , delete, update),表名,觸發型別,觸發條件,觸發操作
語句觸發器:
create [or replace] trigger trigger_nameview codetiming event1 [or event2 ..] on table_name
pl/sql block;
trigger_name 觸發器名
event
事件table_name 表名
timing 時機
行觸發器:
--序列view codecreate sequence seq_fc
increment by
1start with
353 --觸發器
create or replace trigger tr_fc
before insert on fundcompany
foreach row
begin
select to_char('
k'||to_char(seq_fc.nextval,'
fm00000
')) into :new.companyid from
dual;
end seq_fc;
insert into fundcompany(name,content,money,state) values(
'龍騰集團
','','
200',0
) select * from fundcompany
管理觸發器
1顯示觸發器資訊(user_triggers 資料字典):select * from user_triggers where table_name='';
2禁用觸發器(暫時失敗):alter trigger trigger_name disable;
3啟用觸發器(重新生效):alter triggertrigger_name enable;
4禁止或啟用表的所有觸發器:
alter table table_name disable all triggers;
alter table table_name enable all triggers;
5重新編譯觸發器: alter trigger trigger_name compile;
6刪除觸發器:drop trigger trigger_name;
程式包(是oracle 的優點)
包是用於邏輯組合相關的pl/sql型別(索引,記錄型別),pl/sql項(游標,游標標量)和pl/sql 子程式(過程,函式)
優點:簡化應用設計
提高應用效能
實現資訊的隱藏
子程式的過載 等
包由包頭和包體組成,包頭也稱為包規範。
包規範實際是包與應用程式之間的介面,用於定義包的公用元件(常量,變數,游標,過程,函式等)
公用元件不僅可以在包內使用也可以被其他子程式引用
包體 用於實現包頭定義的過程和函式
在包體中,使用者可以單獨定義私有元件,只能在包內使用
--包頭view codecreate or replace package fundmanager_pack
isname varchar2(
20):='張三'
; state number(
1,0):=0;
procedure p_select(fid varchar2);
--新增**公司
procedure p_insertfundcompany(p_name varchar2,p_content clob,p_money number,p_state number);
end fundmanager_pack;
create or replace package body fundmanager_pack
is --新增**公司
procedure p_insertfundcompany(p_name varchar2,p_content clob,p_money number,p_state number) is
begin
insert into fundcompany(name,content,money,state) values(p_name,p_content,p_money,p_state);
end p_insertfundcompany;
end fundmanager_pack;
--新增**公司
begin
--呼叫
fundmanager_pack.p_insertfundcompany('鴻通
','地方
',5000,1
); end;
Oracle PL SQL高階特性
定義 pl sql該語言只針對oracle,是sql過程語言的擴充套件,它將sql資料庫語言與乙個過程程式語言結合在一起,此程式語言基於稱為塊的單元,乙個塊包含sql和pl sql語句.觸發器 是指存放在資料庫中,並被隱含執行的過程,體現了資料完整約束.oracle不僅支援dml 操作語言 觸發器,...
Python高階特性
l csx sarah tracy bob jack print l 0 l 1 l 2 輸出 csx sarah tracy l 0 3 輸出 csx sarah tracy 如果第乙個索引是0,還可以省略 print l 2 輸出 bob jack print l 2 1 輸出 bob d fo...
高階OOP特性
注意 高階oop特性只在php5及以上版本支援 抽象類 命名空間需要5.3及以上 在php5中,將所有對物件都看作引用,而不是值。那麼如何建立物件的副本呢?答案就是轉殖物件。語法 destinationobject clone targetobject 可以在乙個類裡面定義乙個 clone 方法來調...