回覆列表
  • 1 # 使用者9836552642008

    就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);

    ;

  • 中秋節和大豐收的關聯?
  • 為何現在有些男人都不樂意追女孩子了?