1.描述怎麼創建一個簡單的存儲函數
我們可以直接做DML來對錶進行操作,但是我們有時候卻需要一個統一的方式來把操作集中起來,可以類比java中方法的概念;
2.創建過程
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
<span style="white-space:pre"> </span>FUNCTION_body
EXCEPTION
其它語句
END;
關於out參數:
IN 參數 標記表示傳遞給函數的值在該函數執行中不改變; OUT 標記表示一個值在函數中進行計算並通過該參 數傳遞給調用語句; IN OUT 標記表示傳遞給函數的值可以變化並傳遞給調用語句. 若省略標記, 則參數 隱含爲 IN
這個是說明:簡單來說就是:無參的函數:
create or replace function name
return varchar2
is
v_sal number;
begin
select sal into v_sal from emp where ename='A';
end ;
有參數:
create or replace function name(v_ename emp.ename%type)
return varchar2
is
v_sal number;
begin
select sal into v_sal from emp where ename=v_ename;
end ;
簡單來說,就是這個樣子,如果要跟複雜的操作,就自己手敲吧
存儲過程語法:
CREATE [OR REPLACE] PROCEDURE Procedure_name
[ (argment [ { IN | IN OUT }] Type,
argment [ { IN | OUT | IN OUT } ] Type ]
[ AUTHID DEFINER | CURRENT_USER ]
{ IS | AS } <類型.變量的說明>
BEGIN <執行部分>
EXCEPTION <可選的異常錯誤處理程序>
END;
和函數一致,只是存儲過程沒有返回值;