1. 程式人生 > >PL/SQL輕量版(四)——存儲函數/存儲過程

PL/SQL輕量版(四)——存儲函數/存儲過程

調用 輸出 dbm 表示 不返回 逗號 oracle oracl col

概述

  ORACLE 提供可以把 PL/SQL 程序存儲在數據庫中,並可以在任何地方來運行它。這樣就叫存儲過程或函數。過程和函數統稱為 PL/SQL 子程序,他們是被命名的 PL/SQL 塊,均存儲在數據庫中,並通過輸入、輸出參數或輸入/輸出參數與其調用者交換信息。 過程和函數的唯一區別是函數總向調用者返回數據,而過程則不返回數據。

一、存儲函數

  1.創建函數

      內嵌函數

CREATE [OR REPLACE] FUNCTION function_name
[ (argment [ { IN | IN OUT }] Type,
argment [ { IN | OUT | IN OUT } 
] Type ] [ AUTHID DEFINER | CURRENT_USER ] RETURN return_type { IS | AS } <類型.變量的說明> BEGIN FUNCTION_body EXCEPTION 其它語句 END; 說明: 1) OR REPLACE 為可選. 有了它, 可以或者創建一個新函數或者替換相同名字的函數, 而不會出現沖突 2) 函數名後面是一個可選的參數列表, 其中包含 IN, OUT 或 IN OUT 標記. 參數之間用逗號隔開. IN 參數 標記表示傳遞給函數的值在該函數執行中不改變; OUT 標記表示一個值在函數中進行計算並通過該參 數傳遞 給調用語句;
IN OUT 標記表示傳遞給函數的值可以變化並傳遞給調用語句. 若省略標記, 則參數 隱含為 IN3) 因為函數需要返回一個值, 所以 RETURN

    簡單無參函數:

CREATE OR REPLACE FUNCTION hello
RETURN VARCHAR2
IS
--函數使用過程中需要的變量/記錄類型/遊標等
BEGIN
       RETURN hello world!;
END;
DECLARE
  v_return VARCHAR2(64);
BEGIN
       v_return := hello();
       dbms_output.put_line(v_return);
END;

PL/SQL輕量版(四)——存儲函數/存儲過程