GET_PROCEDURE_COLUMNS

説明

ストアドプロシージャ GET_PROCEDURE_COLUMNS は、ユーザーによって作成されたストアドプロシージャのフィールドに関する情報を返します。このプロシージャは、標準のプロシージャの情報は返しません。

このプロシージャは、各プロシージャのフィールドごとに 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_namenull の場合、このプロシージャはすべてのデータベースのすべてのプロシージャのフィールドを返します。

  • input_procedure_namenull の場合、このプロシージャは input_database_name のすべてのプロシージャのフィールドを返します。


このプロシージャは、以下のフィールドを返します。

  • database_name: パラメーターのプロシージャが属すデータベースの名前。

  • procedure_name: プロシージャの名前。

  • column_name: プロシージャのパラメーターの名前。

  • column_vdp_type: Virtual DataPort での型の名前 (int、text、float など)。

  • column_sql_type: フィールドの「ソース型プロパティ」内のパラメーター型の名前。たとえば、 VARCHARNCHARINTEGERBIGINT などです。

    これらは、JDBC API のクラス java.sql.Types に定義されている定数の名前です。

  • column_sql_type_code: パラメーターの「ソース型プロパティ」内のパラメーターの型を表す整数

    このフィールドの値は、JDBC API のクラス java.sql.Types に定義されています。たとえば、 INT = 4VARCHAR = 12 などです。

  • column_type: 指定できる値は以下のとおりです。

    • IN: 入力パラメーター。

    • OUT: 出力パラメーター。

    • INOUT: 入力および出力パラメーター。

  • column_is_nullable: このフィールドに null 値を入力できる場合は true、そうでない場合は false。

必要な権限

このプロシージャの結果は、それを実行するユーザーに付与されている権限によって異なります。ユーザーが管理者ユーザーではない場合、このプロシージャはそのユーザーが Metadata 権限を持っているプロシージャに関する情報のみを返すことに注意してください。その意味は以下のとおりです。

  • ユーザーが管理者の場合、このプロシージャはすべてのデータベースのすべてのプロシージャに関する情報を返します。

  • このプロシージャは、ユーザーがローカル管理者であるデータベースのプロシージャに関する情報を返します。

  • このプロシージャは、ユーザーが Connect 権限および Metadata 権限を持っているデータベースのプロシージャに関する情報を返します。

このプロシージャは、「権限エラー」を返しません。たとえば、以下の例を考えてみます。

  • ユーザーが SELECT * FROM GET_PROCEDURE_COLUMNS() (すべてのデータベースのすべてのプロシージャのすべてのフィールドに関する情報を取得) を実行します。

  • このユーザーは、 testing データベースに対する Connect 権限と Metadata 権限のみを持っています。

このシナリオでは、このプロシージャは testing データベースのプロシージャに関する情報のみを返し、他のデータベースのプロシージャに関する情報は返しません。