INFORMATION_SCHEMA ROUTINES ディクショナリビューは、ストアドルーチン(ストアドプロシージャとストアドファンクション)に関する情報を提供しますが、組み込み(ローカル)関数やロード可能な関数は含まれません。 INFORMATION_SCHEMA ROUTINES ディクショナリビューに含まれるフィールドは、次の表のとおりです。
フィールド名 |
説明 |
|---|---|
| SPECIFIC_NAME | ストアドルーチンの名前。 |
| ROUTINE_CATALOG | ストアドルーチンが属するカタログの名前。この値は常に def です。現在、このフィールドは使用されていません。 |
| ROUTINE_SCHEMA | ストアドルーチンが属するスキーマ(データベース)の名前。 |
| ROUTINE_NAME | ストアドルーチン名。SPECIFIC_NAME と同じです。 |
| ROUTINE_TYPE | ストアドルーチンのタイプ。ストアドプロシージャは PROCEDURE、ストアドファンクションは FUNCTION です。 |
| DATA_TYPE | ルーチンがストアドファンクションの場合、戻り値のデータ型。ルーチンがストアドプロシージャの場合、この値は空です。DATA_TYPE の値はタイプ名のみで、他の情報は含まれません。DTD_IDENTIFIER の値にはタイプ名と精度や長さなどのその他の情報が含まれます。現在、このフィールドは使用されていません。 |
| CHARACTER_MAXIMUM_LENGTH | ストアドファンクションの文字列戻り値の最大長(文字単位)。ルーチンがストアドプロシージャの場合、この値は NULL です。現在、このフィールドは使用されていません。 |
| CHARACTER_OCTET_LENGTH | ストアドファンクションの文字列戻り値の最大長(バイト単位)。ルーチンがストアドプロシージャの場合、この値は NULL です。現在、このフィールドは使用されていません。 |
| NUMERIC_PRECISION | ストアドファンクションの数値戻り値の数値範囲。ルーチンがストアドプロシージャの場合、この値は NULL です。現在、このフィールドは使用されていません。 |
| NUMERIC_SCALE | ストアドファンクションの数値戻り値の数値精度。ルーチンがストアドプロシージャの場合、この値は NULL です。現在、このフィールドは使用されていません。 |
| DATETIME_PRECISION | ストアドファンクションの時間戻り値の小数部の秒精度。ルーチンがストアドプロシージャの場合、この値は NULL です。現在、このフィールドは使用されていません。 |
| CHARACTER_SET_NAME | ストアドファンクションの文字列戻り値の文字セット名。ルーチンがストアドプロシージャの場合、この値は NULL です。現在、このフィールドは使用されていません |
| COLLATION_NAME | ストアドファンクションの文字列戻り値の照合順序名。ルーチンがストアドプロシージャの場合、この値は NULL です。現在、このフィールドは使用されていません。 |
| DTD_IDENTIFIER | ルーチンがストアドファンクションの場合、戻り値はデータ型です。ルーチンがストアドプロシージャの場合、この値は空です。DATA_TYPE の値はタイプ名のみで、他の情報は含まれません。DTD_IDENTIFIER の値にはタイプ名と精度や長さなどのその他の情報が含まれます。 |
| ROUTINE_BODY | ルーチン定義で使用される言語。この値は常に SQL です。 |
| ROUTINE_definition | ルーチンが実行する SQL ステートメントのテキスト。 |
| EXTERNAL_NAME | この値は常に NULL です。 |
| EXTERNAL_LANGUAGE | ストアドルーチンの言語。現在、このフィールドは使用されていません。 |
| PARAMETER_STYLE | この値は常に SQL です。 |
| IS_DETERMINISTIC | 値は YES または NO で、ストアドルーチンが DETERMINISTIC 機能を使用して定義されているかどうかによって決まります。現在、このフィールドは使用されていません。 |
| SQL_DATA_ACCESS | ルーチンのデータアクセス特性。この値は CONTAINS SQL、NO SQL、READS SQL DATA、または MODIFIES SQL DATA に設定できます。 |
| SQL_PATH | この値は常に NULL です。 |
| SECURITY_TYPE | ルーチンの SQL SECURITY 機能。この値は DEFINER または INVOKER です。現在、このフィールドは使用されていません。 |
| CREATED | ルーチンが作成された日付と時刻。この値の型は TIMESTAMP です。 |
| LAST_ALTERED | ルーチンが最後に変更された日付と時刻。プロシージャが作成後一切変更されていない場合、この値は CREATED の値と同じです。 |
| SQL_MODE | ルーチンが作成または変更された際に有効だった SQL モードで、ルーチンはそのモードで実行されます。 |
| ROUTINE_COMMENT | ルーチンのコメントテキスト(存在する場合)。存在しない場合、この値は空です。 |
| DEFINER | DEFINER 句で指定されたアカウント(通常はルーチンを作成したユーザー)。形式は user_name'@'host_name' です。 |
| CHARACTER_SET_CLIENT | ストアドルーチンを作成または変更した際のシステム変数 CHARACTER_SET_CLIENT の現在のセッションでの値。 |
| COLLATION_CONNECTION | ストアドルーチンを作成または変更した際のシステム変数 COLLATION_CONNECTION の現在のセッションでの値。 |
| DATABASE_COLLATION | ストアドルーチンを作成または変更した際のシステム変数 DATABASE_COLLATION の現在のセッションでの値。 |
例:
obclient> SELECT * FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA='test' AND ROUTINE_NAME='p1'\G
*************************** 1. row ***************************
SPECIFIC_NAME: p1
ROUTINE_CATALOG: def
ROUTINE_SCHEMA: test
ROUTINE_NAME: p1
ROUTINE_TYPE: PROCEDURE
DATA_TYPE:
CHARACTER_MAXIMUM_LENGTH: NULL
CHARACTER_OCTET_LENGTH: NULL
NUMERIC_PRECISION: NULL
NUMERIC_SCALE: NULL
DATETIME_PRECISION: NULL
CHARACTER_SET_NAME: NULL
COLLATION_NAME: NULL
DTD_IDENTIFIER: NULL
ROUTINE_BODY: SQL
ROUTINE_DEFINITION: BEGIN
# Set value of OUT parameter
SELECT VERSION() INTO ver_param;
# Increment value of INOUT parameter
SET incr_param = incr_param + 1;
END
EXTERNAL_NAME: NULL
EXTERNAL_LANGUAGE: NULL
PARAMETER_STYLE: SQL
IS_DETERMINISTIC: NO
SQL_DATA_ACCESS: CONTAINS_SQL
SQL_PATH: NULL
SECURITY_TYPE: DEFINER
CREATED: 2022-05-18 18:07:51.994639
LAST_ALTERED: 2022-05-26 18:07:51.994639
SQL_MODE: STRICT_ALL_TABLES,NO_ZERO_IN_DATE
ROUTINE_COMMENT:
DEFINER: 'root'@'%'
CHARACTER_SET_CLIENT: utf8mb4
COLLATION_CONNECTION: utf8mb4_general_ci
DATABASE_COLLATION: utf8mb4_general_ci