Oracle儲存過程和儲存函式建立方法 詳解

2022-09-21 16:42:09 字數 1908 閱讀 5320

select * from emp;

-----------------儲存過程------------------------

--定義

create[or replace] procedure 儲存過程名稱(引數名 [in]/out 資料型別)

is/as

begin

--jsbtdnnb邏輯表示式

end [儲存過程名稱];

--定義儲存過程計算年薪,並答應輸出

create or replace procedure proc_salyears(v_no in number)

issal_years number(9,2);

begin

--計算年薪

select sal*12+nvl(comm,0) into sal_years from emp where empno=v_no;

--輸出

dbms_output.put_line(sal_years);

end;

--呼叫儲存過程

方式1:

call proc_salyears(7788);

方式2:

begin

proc_salyears(7369);

end; 

--out引數的儲存過程

--計算年薪並返回

create or replace procedure proc_salyears(v_no in number,sal_years out number)

isbegin

--計算年薪

select sal* into sal_years from emp where empno=v_no;

end;

--呼叫儲存過程

declare

&nbswww.cppcns.comp;  v_sal number(9,2);

begin

proc_salyears(7876,v_sal);

dbms_output.put_line(v_sal);

end;

-----------------儲存函式------------

--定義

create or replace function 儲存函式名(引數名 in/out 資料型別)

return 資料型別

is|as

begin

return 具體的資料;

end [儲存函式名稱];

--定義儲存函式名計算年薪

create or replace function fun_salyears(f_no number)

return number

issal_years number(9,2);

begin

select sal*12+程式設計客棧nvl(comm,0) into sal_years from emp wher empno=f_no;

return sal_years;

end ;

--使用儲存函式

declare

sal_yeats number(9,2);

begin

sal_yeats := fun_salyears(7876);

dbms_output.put_line(sal_yeats);

end;

--可簡寫

begin

dbms_output.put_line(fun_salyears(7369));

end;

--------儲存過程和儲存函式的區別--------

儲存過程多用於專案之間的資料共享,儲存函式多被儲存過程呼叫.

儲存函式可以再sql語句中呼叫,儲存過程不能.

本文標題: oracle儲存過程和儲存函式建立方法(詳解)

本文位址:

Oracle儲存過程和儲存函式

參看 oracle儲存過程 儲存函式 說明 儲存過程 儲存函式都是物件。包括表 檢視 索引 序列 同義詞等也是物件。概念 指儲存在資料庫中供所有使用者程式呼叫的子程式叫儲存 過程 儲存函式。特點 完成特定功能的程式。區別 儲存函式可以通過return子句返回乙個值。建立和使用儲存過程 用create...

oracle儲存過程和儲存函式(1)

第乙個儲存過程 create orreplace procedure sayhelloworld asbegin dbms output.put line hello world end 呼叫儲存過程 1.execute exec 2.在儲存過程中呼叫 begin sayhelloworld end...

Oracle儲存函式,儲存過程

一 oracle儲存函式 儲存的pl sql語法塊,完成特定的功能。1 語法 函式關鍵字 function 1 建立函式 create or replace function function name param1,param2 return is as local declarations de...