Oracle學習(十) 使用者自訂函數

來源:互聯網
上載者:User

使用者自訂函數是儲存在資料庫中的代碼塊,可以把值返回到調用程式。函數的參數有3種類型:

(1)in參數類型:表示輸入給函數的參數,該參數只能用於傳值,不能被賦值。

(2)out參數類型:表示參數在函數中被賦值,可以傳給函數調用程式,該參數只能用於賦值,不能 用於傳值。

(3)in out參數類型:表示參數既可以傳值,也可以被賦值。

1.函數的建立

文法格式:

    create [or replace] function functionName      (          parameterName1 mode1 dataType1,          parameterName2 mode2 dataType2,          ...      )      return returnDataType      is/as    begin        function_body          return expression      end functionName; -- 結束函數的聲明,也可以直接寫end不加函數名。  --其中mode1、mode2表示參數類型,dataType表示參數的資料類型。returnDataType表示傳回值類型。

樣本1:

create or replace function explainParameter -- 定義一個名為explainParameter的函數  (      inParam in char,    --  定義該參數類型為in參數類型,只能用於賦值      outParam out char,  --  out參數類型,只能用於傳值      inAndOutParam in out char   --  in out參數類型,既能賦值,又能傳值  )  return char     --  表示函數的傳回型別為char類型  as      -- 表示函數體部分      returnChar char;        --  聲明零時變數,這是可有可無的,這裡聲明返回變數為char類型的returnChar變數。  begin    inParam := 'Hello World';   -- 這是錯誤的,in類型的參數只能用來傳值,不能賦值      outParam := 'Hello World'; -- 這是正確的,out類型的參數可以用來被賦值      inAndOutParam := 'Hello World'; -- 這是正確的,in out參數既可以用來傳值,又可以被賦值      inAndOutParam := outParam; -- 這是錯誤的,out參數不能用來傳值      return(returnChar); -- 返回returnChar,也可以不要括弧,直接寫return returnChar。  end explainParameter; -- 結束explainParameter函數,表示explainParameter函式宣告結束,也可以直接寫end,不加函數名。

樣本2:

CREATE OR REPLACE FUNCTION testFunc (num1 IN NUMBER, num2 IN NUMBER)  RETURN NUMBER  AS    num3 number;      num4 number;      num5 number;  BEGIN    num3 := num1 + num2;      num4 := num1 * num2;      num5 := num3 * num4;      RETURN num5;  END;

2.函數的調用

自訂函數的調用方法跟系統內建函數的調用方法相同,可以直接在select語句中調用,也可以在函 數中調用,如下:

select testFunc(1,2) from tableName;

num := testFunc(1,2);

3.函數的刪除

自訂函數的刪除方法類似於表的刪除,文法格式如下:

drop function [schema.]functionName;

查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.