Oracle學(xué)習(xí)筆記之存儲(chǔ)過(guò)程與函數(shù) |
發(fā)布時(shí)間: 2012/8/22 16:48:10 |
PL/SQL是對(duì)Oracle數(shù)據(jù)庫(kù)進(jìn)行操作的一種過(guò)程性編程語(yǔ)言,它可以在SQL * plus中執(zhí)行,也可以嵌入到JAVA或者C++中。其基本組成為: DECLARE ... BEGIN ... EXCEPTION ... END 可用來(lái)將對(duì)數(shù)據(jù)庫(kù)的各種操作封裝為一個(gè)代碼塊,為了加強(qiáng)可重用性,還可將重復(fù)性代碼寫成函數(shù)與存儲(chǔ)過(guò)程,用參數(shù)表示變化的部分。 函數(shù)與存儲(chǔ)過(guò)程的區(qū)別是,函數(shù)返回一個(gè)值,而存儲(chǔ)過(guò)程沒(méi)有返回值,不過(guò)存儲(chǔ)過(guò)程也可通過(guò)指定參數(shù)的IN|OUT形式來(lái)達(dá)到將處理結(jié)果讀出來(lái)的目的。
1.存儲(chǔ)過(guò)程創(chuàng)建示例: CREATE OR REPLACE PROCEDURE callme(p1 number,p2 varchar2,p3 varchar2) AS BEGIN INSERT INTO test values(p1,p2); END callme; 2.存儲(chǔ)過(guò)程使用示例: DECLARE val1 number:=16; val2 varchar2(20):='過(guò)程插入的新部門2'; val3 varchar2(12); BEGIN callme(val1,val2,val3); END; 3.函數(shù)創(chuàng)建示例: CREATE OR REPLACE FUNCTION CountRows(p1 number) RETURN NUMBER AS v_number NUMBER; BEGIN SELECT count(*) INTO v_number FROM test WHERE id > p1; RETURN v_number; END; 4.函數(shù)調(diào)用示例: set serveroutput on /*只有設(shè)置了這行,才會(huì)顯示輸出結(jié)果*/ DECLARE v_number NUMBER; p_minid NUMBER; BEGIN p_minid:=0; v_number:=CountRows(p_minid); DBMS_OUTPUT.PUT_LINE('部門號(hào)大于'||p_minid||'的部門有'||v_number||'個(gè)'); END; 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |