12oracle之儲存函式

2021-09-26 13:27:33 字數 968 閱讀 5614

語法與儲存過程類似:

create or replace punction 函式名(函式列表)

return 函式值型別

asbegin

plsql子程式體;

end 函式名;

示例:

/*

查詢某職工的總收入。

*/create or replace function queryempsalary(i_empid in number)

return number

as psal number; --定義變數儲存員工的工資

pcomm number; --定義變數儲存員工的獎金

begin

select sal,comm into psal, pcomm from emp where empno = i_empid;

return psal*12+ nvl(pcomm,0);

end;

/

呼叫:

declare

v_sal number;

begin

v_sal:=queryempsalary(7934);

dbms_output.put_line('salary is:' || v_sal);

end;

/begin

dbms_output.put_line('salary is:' || queryempsalary(7934));

end;

如何選擇儲存過程和儲存函式?

原則上,如果只有乙個返回值,用儲存函式,否則,就用儲存過程。

但是,一般我們會直接選擇使用儲存過程,原因是:

函式是必須有返回值,儲存可以有也可以沒有,儲存的更靈活!

既然儲存也可以有輸出引數,可以代替儲存函式。.

oracle的新版本中,已經不推薦使用儲存函式了。

Oracle 儲存函式

查詢指定員工年薪 create orreplace function func getsal vempno number return number is 宣告變數,儲存年薪 vnum number begin 根據傳入值vempno查詢年薪,並賦值給變數vnum nvl進行獎金判斷是否為空 sel...

Oracle儲存函式

儲存函式就是使用者自定義函式,接收乙個或多個引數,然後返回結果。函式中可以使用pl sql進行邏輯處理,pl sql中可以進行函式呼叫。create orreplace function 函式名稱 引數1 引數型別,引數2 引數型別.return 返回值資料型別 is 宣告變數部分 begin 邏輯...

oracle 儲存函式

儲存函式 函式為一命名的儲存程式,可帶引數,並返回一計算值。函式和過程的結構類似,但必須有乙個return子句,用於返回函式值 注意 當乙個表示式包含null值,往往會導致得不到正確的結果,或者沒有結果 所以最好的做法是使用nvl函式將空值以0代替 查詢某個員工的年收入 create orrepla...