OceanBase logo

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

プロダクト概要
デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

ドキュメント

会社概要

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

トラストセンター

法的情報

お問い合わせ

日本 - 日本語
International - English
中国站 - 简体中文
クラウドで始める

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

プロダクト概要
デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

トラストセンター

法的情報

お問い合わせ

クラウドで始める
编组
すべての製品
    • データベース
    • アイコンOceanBaseデータベース
    • アイコンOceanBase Cloud
アイコン

OceanBase Cloud

すべてのバージョン

    OceanBase ロゴ

    AI時代を支える分散データベース

    日本 - 日本語
    International - English
    中国站 - 简体中文
    プロダクト
    OceanBase Cloudエンタープライズ版コミュニティ版OceanBase seekdb
    会社概要
    OceanBaseについてトラストセンター法的情報お問い合わせ
    公式アカウント
    ConnpassXQiitaLumaGitHub

    © OceanBase 2026. All rights reserved

    クラウドサービス契約個人情報保護ポリシーセキュリティ
    お問い合わせ
    ドキュメントフィードバック
    1. ホーム
    2. OceanBase Cloud
    3. master
    アイコンOceanBase Cloud
    master
    データベース
    • OceanBaseデータベース
    • OceanBase Cloud
    • master

    関数の作成

    最終更新日:2026-06-03 10:03:39  更新
    シェア
    このページの内容
    背景
    前提条件
    手順
    ステップ1:関数名を入力する
    ステップ2:関数の戻り値のデータ型を選択する
    ステップ3:パラメータを追加する
    ステップ4:新規関数を確定する
    ステップ5:関数情報を編集する
    ステップ6:新規関数の作成を完了する

    折りたたみ

    シェア

    SQLコンソールでは、視覚的な方法で関数を作成できます。このドキュメントでは、SQLウィンドウを使用して関数を作成する方法について説明します。

    背景

    関数はデータベース内で定義されたサブプログラムであり、組み込みSQLステートメントから呼び出すことができます。標準の関数では業務要件を満たせない場合は、SQLウィンドウで新しい関数を作成し、カスタム関数を追加することで、特定の機能計算や各種操作を実現できます。また、カスタム関数により重複コーディングを減らし、プログラムの可読性を向上させることができます。

    関数はストアドプロシージャと非常によく似た手続き型のデータベースオブジェクトです。ストアドプロシージャと同様に、SQLステートメントと手続き型ステートメントで構成されるコード断片であり、アプリケーションや他のSQLステートメントから呼び出すことができます。

    カスタム関数とストアドプロシージャの違い:

    • 関数は必ず1つの戻り値を持ち、データを処理した後に結果を返す用途に適しています。ストアドプロシージャは0個以上の戻り値を持つことができ、一括挿入や一括更新などに適しています。

    • 関数は SELECT ステートメントで直接呼び出すことができますが、ストアドプロシージャの呼び出しには CALL ステートメントを使用する必要があります。

    1

    上図のように、関数の作成には以下の6つのステップが含まれます:

    1. 関数名を入力します。

    2. 関数の戻り値のデータ型を選択します。

    3. パラメータを追加します。

    4. 新規関数の情報を確定します。

    5. 関数情報を編集します。

    6. 新規関数の作成を完了します。

    本記事では、SQLウィンドウで従業員関数 (function_emp) を作成する例を説明します。この関数 function_emp には id INT 型のパラメータが含まれており、id に基づいて従業員名を取得します。

    説明

    本文中で使用されているデータはすべて例です。実際の状況に応じてデータを置き換えてください。

    前提条件

    現在のテナントのデータベースアカウントとパスワードを使用してSQLコンソールにログインできること。

    手順

    ステップ1:関数名を入力する

    SQLコンソールにログインしSQLウィンドウに入ったら、左側のデータベースリストで 関数 タグをクリックすると関数リストが表示されます。関数リストの右上隅にある + をクリックして、必要なオブジェクトを作成します。

    2

    ステップ2:関数の戻り値のデータ型を選択する

    具体的なデータ型については、OceanBaseデータベースのリファレンスガイドを参照してください。

    ステップ3:パラメータを追加する

    1. パラメータとは関数を呼び出す際に渡す情報です。パラメータ情報を指定する必要があります:

      • Oracleモード:パラメータの 名前、スキーマ/モード、タイプ、および デフォルト値 を指定する必要があります。

      • MySQLモード:パラメータの 名前、タイプ、および 長さ を指定する必要があります。

    2. 関数の追加には、以下の3つの機能操作が提供されています:

      機能
      説明
      ポップアップガイド補助メニュー ポップアップガイド補助メニューで、パラメータの追加、削除、上下移動を行えます。
      表番号をクリック
      • 表番号をクリックすると、その行全体が選択され、補助メニュー(削除、上/下移動)が表示されます。
      • 表番号をクリックして選択すると、パラメータの行全体をドラッグして順序を調整できます。
      マウス右クリック操作 マウスの右ボタンをクリックして行全体を選択し、行のコピー / 行を1つ下へ移動します。

      説明

      行をコピーした後、任意の行を選択し、ショートカットキーCommand + V / Ctrl + Vで貼り付けることができます。

    3. パラメータ で指定する必要がある スキーマ/モード はパラメータタイプを指します。

      MySQLモードではパラメータモードの設定はサポートされていませんが、Oracleモードでは IN (入力)、OUT (出力)、INOUT (入出力) の3種類のパラメータモードをサポートしています:

      パラメータ
      タイプ
      IN 入力パラメータ。関数を呼び出す際に、その値を関数に渡して実行時に使用します。
      OUT 出力パラメータ。関数を呼び出す際、関数は出力パラメータ自体の値を無視し、空値を渡します。関数体内で出力パラメータを変更し、その変更結果を出力パラメータが表す実引数に返します。
      INOUT 入出力パラメータ。入力パラメータと出力パラメータの両方の機能を兼ね備えています。

      説明

      Oracleモードでは、関数とストアドプロシージャはIN/OUT/INOUTパラメータを含みます。MySQLモードではINパラメータのみを含み、ストアドプロシージャはIN/OUT/INOUTパラメータを含みます。

    ステップ4:新規関数を確定する

    確認 をクリックし、SQL作成確認ページに進みます。

    ステップ5:関数情報を編集する

    3

    SQL作成確認ページで、関数ステートメントを編集します。

    ユーザーはSQL作成確認ページで作成する関数のステートメントを編集できます。構文は以下のとおりです:

    CREATE FUNCTION function_name ([var_name var_type[,...]])
    RETURNS return_type
     delarification_block
    BEGIN
        function_body
    EXCEPTION
        exception_handler
    END;
    

    パラメータ説明:

    パラメータ
    説明
    function_name カスタム関数の名前を指定します。

    注意

    カスタム関数はストアドプロシージャと同じ名前を持てません。

    var_name var_type カスタム関数のパラメータを指定するために使用されます。このパラメータには名前と型のみを指定でき、キーワードIN、OUT、INOUTは指定できません。
    RETURNS return_type カスタム関数の戻り値のデータ型を宣言するために使用されます。ここで、return_type は戻り値のデータ型を指定するために使用されます。

    注意

    RETURN VALUEステートメント内にSELECTステートメントを含める場合、SELECTステートメントの戻り結果は1行1列の値でなければなりません。

    function_body カスタム関数の本体部分、すなわち関数体です。 関数体には必ず RETURN ステートメントを含める必要があります。 関数体が複合構造の場合は、BEGIN...ENDステートメントを使用する必要があります。

    例:

    CREATE FUNCTION `function_emp` ( `id` int(20)) RETURNS VARCHAR(300)
    
    -- 関数本体開始
    BEGIN
    
    -- 変数宣言
    DECLARE
      a VARCHAR(300);
    
    -- 変数代入
    SELECT
      name INTO a
    FROM
      employee
    WHERE
      emp_no = id;
    
    -- 戻り値
    RETURN a;
    
    -- 関数本体終了
    END
    

    ステップ6:新規関数の作成を完了する

    作成 をクリックして新規関数の作成を完了すると、システム組み込み関数を呼び出すように、SELECT ステートメントを使用してユーザー定義関数を呼び出せるようになります。

    構文:

    SELECT function_name ([function_parameter [,...]])
    

    例:

    SELECT function_emp(2);
    
    • MySQLモード

      5

    • Oracleモード

      注意

      Oracleモードでは、OUTパラメータを含む場合は CALL 方法で呼び出す必要があります。関数リストに黄色いアイコンが表示されている場合は、現在有誤りまたは警告があることを示しています。

      6

    左側のナビゲーションバーで、関数リスト内の関数名を右クリックすると、ポップアップ表示される管理操作リスト(表示、編集、実行、ダウンロード、切り落とす および 更新 を含む)から、対象オブジェクトをすばやく管理および操作できます。関数の機能については、SQLコンソールの機能キー一覧を参照してください。

    操作キー
    説明
    表示 機能管理 ページに移動し、現在の関数の基本情報、パラメータ、コードなどをすべて確認します。
    編集 機能管理 ページには、現在の関数を定義するステートメントが表示されます。このウィンドウでその関数を編集し続けることができます。

    説明

    OceanBaseのMySQLモードは編集機能をサポートしていません。

    実行 現在の関数を実行します。
    エクスポート オブジェクトのエクスポート。デフォルトでは現在のオブジェクトをエクスポートしますが、複数のオブジェクトを同時にエクスポートすることもサポートしています。詳細については、本マニュアルの 単一テーブルのエクスポートとインポート を参照してください。
    ダウンロード 関数オブジェクトのSQLファイルをダウンロードします。
    切り落とす 現在の関数を削除します。
    更新 現在の関数オブジェクトに対して管理操作を行った後、構造ツリーを更新して最新の情報を表示します。

    前のトピック

    ビューの作成
    最後

    次のトピック

    ストアドプロシージャの作成
    次
    このページの内容
    背景
    前提条件
    手順
    ステップ1:関数名を入力する
    ステップ2:関数の戻り値のデータ型を選択する
    ステップ3:パラメータを追加する
    ステップ4:新規関数を確定する
    ステップ5:関数情報を編集する
    ステップ6:新規関数の作成を完了する