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...