存儲過程和函數的區別


存儲過程和函數的區別

存儲過程和函數目的是為了 可重復地 執行操作數據庫的sql語句的集合。

區別是寫法和調用上。

寫法上:存儲過程的參數列表可以有輸入參數、輸出參數、可輸入輸出的參數;

            函數的參數列表只有輸入參數,並且有return <返回值類型,無長度說明>。

返回值上:

    存儲過程的返回值,可以有多個值,

           函數的返回值,只有一個值。

調用方式上:

    存儲過程的調用方式有:

1)、exec <過程名>;

2)、execute <過程名>;

3)、在PL/SQL語句塊中直接調用。

            函數的調用方式有:

      在PL/SQL語句塊中直接調用。

                 具體分為:

  ----調用FUNCTION add_three_numbers

  ----1. 位置表示法調用函數

  BEGIN

  dbms_output.put_line(add_three_numbers(2,4,5));

  END;

  ----2. 命名表示法調用函數

  BEGIN

  dbms_output.put_line(add_three_numbers(b=>3, a=>4,c=>2));

  END;

  ----3. 混合使用位置表示法和命名表示法調用函數

  BEGIN

  dbms_output.put_line(add_three_numbers(3, b=>4,c=>2));

  END;

  ----4. 排除表示法

  BEGIN

  dbms_output.put_line(add_three_numbers(12,c=>2));

  END;

  ----5. sql調用表示法 --混合表示法

  SELECT add_three_numbers(3, b=>4,c=>2) FROM DUAL;

----1. 該函數接受3個可選參數,返回3個數字的和

  CREATE OR REPLACE FUNCTION add_three_numbers

  (

  a NUMBER:=0, b NUMBER:=0, c NUMBER:=0

  )

  RETURN NUMBER IS

  BEGIN

  RETURN a+b+c;

  END;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM