就oracle而言:
引數而言,儲存過程可以定義多個傳入和傳出引數,但是函式可以多個傳入,但是隻有一個傳出,而且要用return
外部呼叫方式上有區別 exec <過程名> 但是函式可以直接 select function() from dual;
下面的語法是複製過來的,供參考
儲存過程:
基本語法:
create procedure <過程名>(<引數列表,無參時忽略>)
as|is
變數宣告、初始化
begin
業務處理、邏輯程式碼
exception
異常捕獲、容錯處理
end <過程名>;
引數:<引數名> in|out|in out <引數型別,無長度說明> ,如:v_name varchar2
in:入參
out:出參
in out:出入參
注:as|is表示as或is
呼叫語法:
1)、exec <過程名>;
2)、execute <過程名>;
3)、在PL/SQL語句塊中直接呼叫。
例:
create or replace procedure up_wap(v_param1 in out varchar2,v_param2 in out varchar2)
is
v_temp varchar2(20);
dbms_output.put_line("交換前引數1:"||v_param1||" 引數2:"||v_param2);
v_temp:=v_param1;
v_param1:=v_param2;
v_param2:=v_temp;
dbms_output.put_line("交換後引數1:"||v_param1||" 引數2:"||v_param2);
when others then dbms_output.put_line("There is a error when the procedure up_wap executing!");
end up_wap;
/
-- 呼叫儲存過程
declare
v_param1 varchar2(20):="param1";
v_param2 varchar2(20):="param2";
up_wap(v_param1 => v_param1,v_param2 => v_param2);
;
就oracle而言:
引數而言,儲存過程可以定義多個傳入和傳出引數,但是函式可以多個傳入,但是隻有一個傳出,而且要用return
外部呼叫方式上有區別 exec <過程名> 但是函式可以直接 select function() from dual;
下面的語法是複製過來的,供參考
儲存過程:
基本語法:
create procedure <過程名>(<引數列表,無參時忽略>)
as|is
變數宣告、初始化
begin
業務處理、邏輯程式碼
exception
異常捕獲、容錯處理
end <過程名>;
引數:<引數名> in|out|in out <引數型別,無長度說明> ,如:v_name varchar2
in:入參
out:出參
in out:出入參
注:as|is表示as或is
呼叫語法:
1)、exec <過程名>;
2)、execute <過程名>;
3)、在PL/SQL語句塊中直接呼叫。
例:
create or replace procedure up_wap(v_param1 in out varchar2,v_param2 in out varchar2)
is
v_temp varchar2(20);
begin
dbms_output.put_line("交換前引數1:"||v_param1||" 引數2:"||v_param2);
v_temp:=v_param1;
v_param1:=v_param2;
v_param2:=v_temp;
dbms_output.put_line("交換後引數1:"||v_param1||" 引數2:"||v_param2);
exception
when others then dbms_output.put_line("There is a error when the procedure up_wap executing!");
end up_wap;
/
-- 呼叫儲存過程
declare
v_param1 varchar2(20):="param1";
v_param2 varchar2(20):="param2";
begin
up_wap(v_param1 => v_param1,v_param2 => v_param2);
;