oracle PL SQL高階特性

2022-04-29 04:36:11 字數 2534 閱讀 2432

觸發器:存放在資料庫中,並被隱含執行的儲存過程。

由觸發事件,觸發條件,觸發操作組成。

dml觸發器:指定觸發器時機(before or after),觸發事件(insert  , delete, update),表名,觸發型別,觸發條件,觸發操作

語句觸發器:

create [or replace] trigger trigger_name

timing event1 [or event2 ..] on table_name

pl/sql block;

trigger_name 觸發器名

event

事件table_name 表名

timing 時機

view code

行觸發器:

--序列

create 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

view code

管理觸發器  

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 子程式(過程,函式)

優點:簡化應用設計

提高應用效能

實現資訊的隱藏

子程式的過載 等

包由包頭和包體組成,包頭也稱為包規範。

包規範實際是包與應用程式之間的介面,用於定義包的公用元件(常量,變數,游標,過程,函式等)

公用元件不僅可以在包內使用也可以被其他子程式引用

包體 用於實現包頭定義的過程和函式

在包體中,使用者可以單獨定義私有元件,只能在包內使用

--包頭

create 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;

view code

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 方法來調...