GET_PROCEDURE_COLUMNS¶
説明
GET_PROCEDURE_COLUMNS
ストアドプロシージャは、ユーザーが Metadata 権限を持っているストアドプロシージャのフィールドに関する情報を返します。
このプロシージャは、各プロシージャのフィールドごとに 1 つの行を返します。
プロシージャとデータベースの一方または両方でフィルタできます。
構文
GET_PROCEDURE_COLUMNS (
input_database_name : text
, input_procedure_name : text
)
input_database_name
: データベースの名前。input_procedure_name
: 取得するフィールドがあるプロシージャの名前。このプロシージャは、等号の代わりに LIKE 演算子を使用して
input_procedure_name
パラメータを評価します。そのため、このパラメータの値には、LIKE とともに使用するワイルドカード演算子 (%
と_
) を使用できます。input_database_name
およびinput_procedure_name
がnull
の場合、このプロシージャは、定義済みのプロシージャのフィールドと、すべてのデータベースのすべてのプロシージャのフィールドを返します。input_procedure_name
がnull
の場合、このプロシージャはinput_database_name
のすべてのプロシージャのフィールドを返します。
このプロシージャは、以下のフィールドを返します。
database_name
: パラメータのプロシージャが属すデータベースの名前。procedure_name
: プロシージャの名前。column_name
: プロシージャのパラメータの名前。column_vdp_type
: Virtual DataPort での型の名前 (int、text、float など)。column_sql_type
: フィールドの「ソース型プロパティ」内のパラメータ型の名前。たとえば、VARCHAR
、NCHAR
、INTEGER
、BIGINT
などです。これらは、JDBC API のクラス java.sql.Types に定義されている定数の名前です。
column_sql_type_code
: パラメータの「ソース型プロパティ」内のパラメータの型を表す整数このフィールドの値は、JDBC API のクラス java.sql.Types に定義されています。たとえば、
INT
=4
、VARCHAR
=12
などです。column_type
: 指定できる値は以下のとおりです。IN: 入力パラメータ。
OUT: 出力パラメータ。
INOUT: 入力および出力パラメータ。
column_is_nullable
: このフィールドにnull
値を入力できる場合は true、そうでない場合は false。
必要な権限
このプロシージャの結果は、それを実行するユーザーに付与されている権限によって異なります。ユーザーが管理者ユーザーではない場合、このプロシージャは、定義済みのストアドプロシージャやそのユーザーが Metadata 権限を持っているプロシージャに関する情報のみを返すことに注意してください。その意味は以下のとおりです。
ユーザーが管理者の場合、このプロシージャはすべてのデータベースのすべてのプロシージャに関する情報を返します。
このプロシージャは、ユーザーがローカル管理者であるデータベースのプロシージャに関する情報を返します。
このプロシージャは、ユーザーが Connect 権限および Metadata 権限を持っているデータベースのプロシージャに関する情報を返します。
このプロシージャは、「権限エラー」を返しません。たとえば、以下の例を考えてみます。
ユーザーが
SELECT * FROM GET_PROCEDURE_COLUMNS()
(すべてのデータベースのすべてのプロシージャのすべてのフィールドに関する情報を取得) を実行します。このユーザーは、
testing
データベースに対する Connect 権限と Metadata 権限のみを持っています。
このシナリオでは、このプロシージャは testing
データベースのプロシージャに関する情報のみを返し、他のデータベースのプロシージャに関する情報は返しません。