説明
このビューはV2.2.77バージョンから導入されました。
機能の概要
現在のテナント配下におけるストアドプロシージャ関連情報を表示します。
フィールド説明
フィールド名 |
型 |
NULL許容 |
説明 |
|---|---|---|---|
| SPECIFIC_NAME | varchar(64) | NO | ストアドプロシージャの名前。 |
| ROUTINE_CATALOG | varchar(512) | NO | ストアドプロシージャが属するカタログの名前。現在このフィールドは使用されておらず、現在の値はdefです。 |
| ROUTINE_SCHEMA | varchar(64) | NO | ストアドプロシージャが属するスキーマの名前。 |
| ROUTINE_NAME | varchar(64) | NO | ストアドプロシージャ名。SPECIFIC_NAMEと同じです。 |
| ROUTINE_TYPE | varchar(9) | NO | プロシージャタイプ:
|
| DATA_TYPE | varchar(64) | NO | プロシージャがストアドファンクションの場合、戻り値のデータ型。プロシージャがストアドプロシージャの場合、この値は空です。現在このフィールドは使用されていません。 |
| CHARACTER_MAXIMUM_LENGTH | bigint(20) | NO | ストアドファンクションの文字列戻り値の最大長。文字単位です。プロシージャがストアドプロシージャの場合、この値はNULLです。現在このフィールドは使用されていません。 |
| CHARACTER_OCTET_LENGTH | bigint(20) | NO | ストアドファンクションの文字列戻り値の最大長。バイト単位です。プロシージャがストアドプロシージャの場合、この値はNULLです。現在このフィールドは使用されていません。 |
| NUMERIC_PRECISION | bigint(20) unsigned | NO | ストアドファンクションの数値戻り値の数値精度。プロシージャがストアドプロシージャの場合、この値はNULLです。現在このフィールドは使用されていません。 |
| NUMERIC_SCALE | bigint(20) | NO | ストアドファンクションの数値戻り値の数値スケール。プロシージャがストアドプロシージャの場合、この値はNULLです。現在このフィールドは使用されていません。 |
| DATETIME_PRECISION | bigint(20) unsigned | NO | ストアドファンクションの時間戻り値の秒精度。プロシージャがストアドプロシージャの場合、この値はNULLです。現在このフィールドは使用されていません。 |
| CHARACTER_SET_NAME | varchar(64) | NO | ストアドファンクションの文字列戻り値の文字セット名。プロシージャがストアドプロシージャの場合、この値はNULLです。現在このフィールドは使用されていません。 |
| COLLATION_NAME | varchar(64) | NO | ストアドファンクションの文字列戻り値の照合名。プロシージャがストアドプロシージャの場合、この値はNULLです。現在このフィールドは使用されていません。 |
| DTD_IDENTIFIER | longtext | NO | 使用されていません。プロシージャがストアドファンクションの場合、戻り値はデータ型です。プロシージャがストアドプロシージャの場合、この値は空です。DATA_TYPE の値は型名のみで、他の情報はありません。一方、DTD_IDENTIFIER の値には型名と精度や長さなどのその他の情報が含まれます。 |
| ROUTINE_BODY | varchar(8) | NO | プロシージャ定義で使用される言語。この値は常にSQLです。 |
| ROUTINE_definition | longtext | NO | ストアドプロシージャ定義のテキスト情報。 |
| EXTERNAL_NAME | longtext | NO | 外部ストアドプロシージャの場所とエントリを示すために使用されます。 |
| EXTERNAL_LANGUAGE | varchar(64) | NO | 外部ストアドプロシージャの言語とタイプを示すために使用されます。 |
| PARAMETER_STYLE | varchar(8) | NO | この値は常にSQLです。 |
| IS_DETERMINISTIC | varchar(3) | NO | YESまたはNO。ストアドプロシージャが DETERMINISTIC 機能で定義されているかどうかによって決まります。現在このフィールドは使用されていません。 |
| SQL_DATA_ACCESS | varchar(64) | NO | 使用されていません。ストアドプロシージャのデータアクセス特性。 |
| SQL_PATH | varchar(64) | NO | この値は常にNULLです |
| SECURITY_TYPE | varchar(7) | NO | SQLセキュリティタイプ:
|
| CREATED | datetime | YES | ストアドプロシージャの作成日時。 |
| LAST_ALTERED | datetime | YES | ストアドプロシージャの最終変更日時。プロシージャが作成後に一度も変更されていない場合、この値はCREATEDと同じになります。 |
| SQL_MODE | text | NO | プロシージャの作成または変更時に有効だったSQLモードで、そのモードでプロシージャを実行します。 |
| ROUTINE_COMMENT | longtext | NO | コメントテキスト |
| DEFINER | varchar(93) | NO | DEFINER句で名前付けられたアカウント(通常はプロシージャを作成したユーザー)。 |
| CHARACTER_SET_CLIENT | varchar(32) | NO | ストアドプロシージャの作成または変更時のシステム変数CHARACTER_SET_CLIENTのセッション値。 |
| COLLATION_CONNECTION | varchar(32) | NO | ストアドプロシージャの作成または変更時のシステム変数COLLATION_CONNECTIONのセッション値。 |
| DATABASE_COLLATION | varchar(32) | NO | ストアドプロシージャの作成または変更時のシステム変数DATABASE_COLLATIONのセッション値。 |
クエリ例
現在のテナント配下のストアドプロシージャに関する情報を確認します。
obclient[test]> SELECT * FROM information_schema.ROUTINES\G
クエリ結果は次のとおりです:
*************************** 1. row ***************************
SPECIFIC_NAME: citycount
ROUTINE_CATALOG: def
ROUTINE_SCHEMA: test
ROUTINE_NAME: citycount
ROUTINE_TYPE: PROCEDURE
DATA_TYPE: NULL
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
SELECT COUNT(*) INTO cities FROM city
WHERE CountryCode = country;
END
EXTERNAL_NAME: NULL
EXTERNAL_LANGUAGE: NULL
PARAMETER_STYLE: SQL
IS_DETERMINISTIC: NO
SQL_DATA_ACCESS: READS_SQL_DATA
SQL_PATH: NULL
SECURITY_TYPE: DEFINER
CREATED: 2025-05-07 14:58:18
LAST_ALTERED: 2025-05-07 14:58:18
SQL_MODE: STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_AUTO_CREATE_USER
ROUTINE_COMMENT:
DEFINER: 'root'@'%'
CHARACTER_SET_CLIENT: utf8mb4
COLLATION_CONNECTION: utf8mb4_general_ci
DATABASE_COLLATION: utf8mb4_general_ci
1 row in set