1. 程式人生 > >oracle自定義函數

oracle自定義函數

eat 內置 是否 名稱 語句 scala blog lar type

一、自定義函數創建
語法格式:
  create [or replace] function function_name/*函數名稱*/
  (/*參數定義部分*/
         parameter_name1 model1 dataType1,
         parameter_name2 model2 dataType2,
         parameter_name3 model3 dataType3,
         ....
    ) 
    return return_datatype /*定義返回值類型*/
    IS/AS
    [local_declarations]
/*聲明臨時變量*/ BEGIN function_body/*函數體部分*/ return scalar_expression/*返回語句*/ END function_name; 解析: or replace:是否覆蓋,可選 function_name:函數名稱 return 自居:指定函數的返回類型,不能指定大小 local_declarations:局部變量聲明,可選 function_body:要執行的PL-SQL語句 參數模式有3種(如果沒有註明,參數默認的類型為in)
in:為只讀模式,在函數中,參數的值只能被引用,不能被改變 out:為只寫模式,只能被賦值,不能被引用 in out:可讀可寫 示例1: --根據機構編號查詢機構名 CREATE OR REPLACE FUNCTION GET_ORG_NAME(P_ORG_ID IN NUMBER) RETURN VARCHAR2 IS V_ORG_NAME VARCHAR2(4000); BEGIN SELECT ORG_NAME INTO V_ORG_NAME FROM SYS_ORG WHERE ORG_ID = P_ORG_ID;
RETURN(V_ORG_NAME); END GET_ORG_NAME;
二、自定義函數調用
    自定義函數的調用方法跟系統內置函數的調用方法相同,可以直接在select語句中調用,也可以在函數中調用,如下:
    select GET_ORG_NAME(20) from SYS_ORG;
    str :=GET_ORG_NAME(20);
三、自定義函數的刪除
    自定義函數的刪除方法類似於表的刪除,語法格式如下:
    drop function [schema.]functionName;

oracle自定義函數