PL/SQL輕量版(四)——存儲函數/存儲過程
阿新 • • 發佈:2018-01-08
調用 輸出 dbm 表示 不返回 逗號 oracle oracl col
概述
ORACLE 提供可以把 PL/SQL 程序存儲在數據庫中,並可以在任何地方來運行它。這樣就叫存儲過程或函數。過程和函數統稱為 PL/SQL 子程序,他們是被命名的 PL/SQL 塊,均存儲在數據庫中,並通過輸入、輸出參數或輸入/輸出參數與其調用者交換信息。 過程和函數的唯一區別是函數總向調用者返回數據,而過程則不返回數據。
一、存儲函數
1.創建函數
內嵌函數
CREATE [OR REPLACE] FUNCTION function_name
[ (argment [ { IN | IN OUT }] Type,
argment [ { IN | OUT | IN OUT } ] Type ]
[ AUTHID DEFINER | CURRENT_USER ]
RETURN return_type
{ IS | AS }
<類型.變量的說明>
BEGIN
FUNCTION_body
EXCEPTION
其它語句
END;
說明:
1) OR REPLACE 為可選. 有了它, 可以或者創建一個新函數或者替換相同名字的函數, 而不會出現沖突
2) 函數名後面是一個可選的參數列表, 其中包含 IN, OUT 或 IN OUT 標記. 參數之間用逗號隔開. IN 參數
標記表示傳遞給函數的值在該函數執行中不改變; OUT 標記表示一個值在函數中進行計算並通過該參
數傳遞 給調用語句; IN OUT 標記表示傳遞給函數的值可以變化並傳遞給調用語句. 若省略標記, 則參數
隱含為 IN 。
3) 因為函數需要返回一個值, 所以 RETURN
簡單無參函數:
CREATE OR REPLACE FUNCTION hello
RETURN VARCHAR2
IS
--函數使用過程中需要的變量/記錄類型/遊標等
BEGIN
RETURN ‘hello world!‘;
END;
DECLARE
v_return VARCHAR2(64);
BEGIN
v_return := hello();
dbms_output.put_line(v_return);
END;
PL/SQL輕量版(四)——存儲函數/存儲過程