すべてのプロダクト
Search
ドキュメントセンター

:関数の作成

最終更新日:Apr 22, 2025

ODC は視覚化された関数作成をサポートしています。このトピックでは、ODC を使用して関数を 作成する方法について説明します。

概要

関数は、データベースで定義されたサブプログラムです。ビルトイン SQL 文を使用して関数を呼び出すことができます。ビルトイン関数がビジネス要件を満たせない場合、OceanBase Developer Center (ODC) では関数を 作成できます。ユーザー定義関数は、いくつかの計算や特殊な操作の実装に役立つだけでなく、コーディングの冗長性を軽減してプログラムの可読性を向上させます。

関数は、データベースのストアドプロシージャに似た手続き型オブジェクトです。ストアドプロシージャと同様に、関数は SQL 文と手続き型文のコード スニペットであり、アプリケーションや他の SQL 文から呼び出すことができます。

ユーザー定義関数とストアドプロシージャの違い:

  • 関数は 1 つの結果のみを返し、1 つの結果を生成するデータ処理に適しています。ストアドプロシージャはゼロ個または複数の結果を返し、一括挿入および一括更新に適しています。

  • SELECT 文を使用して関数を呼び出すことができますが、ストアドプロシージャは CALL 文を使用して呼び出します。

Create a function 1

前の図に示すように、次の 6 つの手順で関数を 作成できます。

1. 関数名を指定する

2. 戻り値のデータ型を指定する

3. パラメーターを指定する

4. 関数の作成を確認する

5. 関数情報を編集する

6. 関数の作成を完了する

手順

次の例では、ODC コンソールで function_emp という名前の関数が 作成され、従業員 ID に基づいて従業員テーブルから従業員名を取得します。 function_emp 関数には、INT 型の id パラメーターが含まれています。手順:

手順 1:関数名を指定する

ODC にログインし、接続名をクリックして対応する接続管理ページに移動します。左側のナビゲーションウィンドウで [関数] をクリックすると、関数の一覧が表示されます。関数を 作成するには、関数一覧の右上隅にある + をクリックするか、上部のナビゲーションバーの [作成] をクリックします。

Create a function 2

手順 2:戻り値のデータ型を指定する

データ型の詳細については、「OceanBase データベース開発者ガイド」をご参照ください。

手順 3:パラメーターを指定する

  1. パラメーターは、関数の呼び出し時に関数に渡される情報を指定します。

    • Oracle モードでは、次のフィールドを指定します。[名前][モード][種類][既定値]

    • MySQL モードでは、[名前][型][長さ] の各フィールドを指定します。

  2. 次の 3 つの方法のいずれかを使用してパラメーターを指定できます。

    方法

    説明

    クイックアクセスのツールバーを使用する

    クイックアクセスのツールバーでは、パラメーターの追加、削除、上下移動ができます。

    行番号をクリックする

    • 行番号をクリックして行を選択すると、行の削除や上下移動ができるクイックアクセスのツールバーが表示されます。

    • 行番号をクリックして行を選択し、行をドラッグして順序を調整できます。

    右クリックする

    • 行をコピーするか、1 行下に移動する:ポインターをドラッグして行を選択し、右クリックして、表示されるコンテキストメニューから [コピー] または [下へ移動] を選択します。

    • セルをコピーする:セルを選択し、右クリックして、表示されるコンテキストメニューから [コピー] を選択します。

  3. パラメーターのモードを指定する必要があります。

    パラメーターモード設定は MySQL モードでは使用できません。Oracle モードでは、INOUTINOUT のパラメーターモードがサポートされています。

    モード

    説明

    IN

    入力パラメーターを示します。関数が呼び出されると、入力パラメーターが関数に渡され、関数の実行で使用されます。

    OUT

    出力パラメーターを示します。関数が呼び出されると、出力パラメーターの値は無視され、空の値が関数に渡されます。関数本体の出力パラメーターは変更できます。変更された結果は返され、出力パラメーターが表す引数に渡されます。

    INOUT

    入出力パラメーターを示します。入出力パラメーターは、入力パラメーターと出力パラメーターの両方です。

    説明

    Oracle モードでは、関数とストアドプロシージャの両方で IN、OUT、INOUT モードがサポートされています。MySQL モードでは、関数は IN モードのみをサポートし、ストアドプロシージャは IN、OUT、INOUT モードをサポートします。

手順 4:関数の作成を確認する

[OK] をクリックして、関数作成ページに移動します。

手順 5:関数情報を編集する

Create a function 3

[関数の作成] ページで関数文を編集します。

さらに、編集ページのツールバーには次のボタンがあります。

ボタン

説明

フォーマット

このボタンをクリックすると、選択した SQL 文または現在の SQL ウィンドウのすべての SQL 文に、インデント、改行、キーワードのハイライトなどのフォーマットが適用されます。

検索と置換

このボタンをクリックし、検索フィールドにテキストを入力して特定のコンテンツを検索し、置換フィールドにテキストを入力して見つかったコンテンツを置換します。

元に戻す

このボタンをクリックすると、最後の操作が元に戻されます。

やり直し

このボタンをクリックすると、元に戻す 操作が反転されます。

大文字と小文字の区別

システムは、すべて大文字すべて小文字最初の文字を大文字にする の 3 つの capitalization オプションをサポートしています。対応するオプションをクリックして、スクリプトで選択した文を目的の大文字小文字形式に変換します。

インデント

選択した文にインデントを追加したり、インデントを削除したりできます。

コメント

コメントを追加をクリックして、選択した文をコメントに変換するか、コメントを削除をクリックして、コメントを SQL 文に変換できます。

IN 値の変換

A B などの形式を ('A','B') 形式に変換できます。

[関数の作成] ページで、作成された関数の SQL 文を編集できます。構文:

CREATE FUNCTION <関数名> ([ <パラメーター 1> <型 1> [ , <パラメーター 2> <型 2>] ] …) 
RETURNS <型> 
<関数本体>

パラメーター:

パラメーター

説明

<関数名>

ユーザー定義関数の名前。

重要

ユーザー定義関数の名前は、ストアドプロシージャの名前と同じにすることはできません。

<パラメーター><型>

関数の パラメーター。

このフィールドには、名前と型のみが含まれます。IN、OUT、または INOUT キーワードを指定することはできません。

RETURNS<型>

戻り値のデータ型。<型> は戻り値のデータ型を指定します。

重要

RETURN VALUE 文の SELECT 文は、単一行、単一列の値のみを返します。

<関数本体>

ユーザー定義関数の本体。

関数本体には RETURN <値> 文が含まれている必要があります。ここで、<値> はユーザー定義関数の戻り値を指定します。

例:

CREATE FUNCTION `function_emp` ( `id` int(45)) RETURNS VARCHAR(300) 

-- 関数本体の開始。
BEGIN

-- 変数を宣言します。
DECLARE
  a VARCHAR(300);

-- 変数に値を代入します。
SELECT
  name INTO a
FROM
  employee
WHERE
  emp_no = id;

-- 戻り値を指定します。
RETURN a;

-- 関数本体の終了。

END

手順 6:関数の作成を完了する

右上隅にある [作成] をクリックして関数を 作成します。ユーザー定義関数が 作成されたら、ビルトイン関数を呼び出す場合と同様に、SELECT キーワードを使用して呼び出すことができます。

説明

関数を管理するには、左側のナビゲーションウィンドウで関数名を右クリックし、コンテキストメニューから必要な操作を選択します。コンテキストメニューには、[表示][作成][編集][コンパイル][デバッグ][実行][ダウンロード][削除][更新] のオプションがあります。

詳細については、「関数の管理」をご参照ください。

構文:

SELECT <関数名> ([<パラメーター> [,...]])

例:

SELECT function_emp(2);
  • MySQL モード

    Create a function 4

  • Oracle モード

    Create a function

    重要

    • Oracle モードでは、ユーザー定義関数に OUT パラメーターが含まれている場合、CALL 文を使用して関数を呼び出す必要があります。

    • 関数一覧の黄色のアイコン Alert は、エラーまたはアラートを示します。

関連トピック