Oracle Database ファンクションを作成する

Oracle Database ファンクションを作成する

Oracle Databaseで、ファンクションを作成する手順を記述してます。「CREATE FUNCTION」で可能です。ここでは、実際に実行した結果を画像で掲載してます。

環境

  • OS windows11 home
  • Oracle Database 21c Express Edition
  • SQL Developer 21.2.1.204

手順

ファンクションを作成するには、「CREATE FUNCTION」を使用します。

CREATE [OR REPLACE] FUNCTION 名前 [(引数名 {IN | OUT | IN OUT } 型,..)]
RETURN 戻り値の型
IS
  /* 宣言部 */
BEGIN
  /* 処理部 */
  RETURN 戻り値;
EXCEPTION
  /* 例外処理部 */
END;

戻り値として「RETURN」を使用します。

パラメータ内容
OR REPLACE既に存在するFUNCTIONを更新する
引数名引数名
IN値を受け取るだけの変数
OUT結果として値を返すだけの変数
INOUT受け取った値を書き換えて返す変数
引数のデータ型を指定

実際に、引数に指定された値を2倍するだけのファンクション「fn1」を作成してみます。

CREATE OR REPLACE FUNCTION fn1(num IN NUMBER) RETURN NUMBER
  IS
    n NUMBER;
  BEGIN
    n := num * 2;
    RETURN n;
  END;

実行結果を見るとフォンクションが作成されていることが確認できます。

ファンクションを実行

作成したファンクションを実行してみます。

SELECT fn1(5) FROM dual;

2倍されていることが確認できます。

引数なし

引数なしのファンクションも作成できます。

数字の「100」を返すだけのファンクションを作成してみます。

CREATE OR REPLACE FUNCTION fn2
RETURN NUMBER IS
  BEGIN
    RETURN 100;
  END;

実行すると数字の100だけが返ってきます。