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