GET_SOURCE_COLUMNS

説明

ストアドプロシージャ GET_SOURCE_COLUMNS は、JDBC 基本ビューのソースの列に関する情報を返します。具体的には、以下のとおりです。

  • テーブルまたはビューを基に作成された JDBC 基本ビューの場合、データベースのテーブル/ビューの列ごとに 1 つの行を返します。

  • SQL クエリにより作成された JDBC 基本ビューの場合、そのクエリによって投影された列ごとに 1 つの行を返します。

  • ストアドプロシージャにより作成された JDBC 基本ビューの場合、そのプロシージャのパラメーターごとに 1 つの行を返します。

このプロシージャは、データベースに対するクエリを実行してこの情報を取得するわけではありません。情報はすべて、基本ビューのメタデータに基づくものです。したがって、基本ビューの作成後にその基本ビューのテーブルにフィールドが追加された場合、このプロシージャは新しい列を返しません。基本ビューのメタデータを更新するには、ビューの source refresh を行う必要があります。また、 SOURCE_CHANGES プロシージャを使用して、ビューの変更をプログラムによって検出することもできます。

GET_SOURCE_TABLE プロシージャも参照してください。

構文

GET_SOURCE_COLUMNS (
      input_database_name : text
    , input_view_name : text
)
  • どちらのパラメーターも必須です。


このプロシージャは、ビューの列ごとに 1 つの行を返します。

  • database_name: 基本ビューが属すデータベースの名前。

  • view_name: ビューの名前。

  • column_name: 基本ビューの列の名前 (「source_column_name」フィールドを参照)。

  • column_depth: 単純型の列の場合は 1。複合型の場合は、フィールドの深さです。

  • view_wrapper_name: 基本ビューの JDBC ラッパーの名前。

  • source_catalog_name: ソースデータベースのテーブル/ビューのカタログ。基本ビューが SQL クエリまたはストアドプロシージャにより作成された場合、またはデータベースにカタログの概念が存在しない場合は null です。

  • source_schema_name: ソースデータベースのテーブル/ビューのスキーマ。基本ビューが SQL クエリまたはストアドプロシージャにより作成された場合、またはデータベースにスキーマの概念が存在しない場合は null です。

  • source_table_name: データベースのテーブル、ビュー、またはプロシージャの名前。SQL クエリにより作成された基本ビューの場合は null です。

  • sqlsentence: 基本ビューの SQL ステートメント。基本ビューが SQL ステートメントにより作成されたものではない場合は null です。

  • source_column_name: 基本ビューがテーブル/ビューを基に作成された場合は、ソーステーブルの列の名前。基本ビューがストアドプロシージャにより作成された場合は、パラメーターの名前です。基本ビューが SQL ステートメントにより作成された場合は、クエリ内の列のエイリアスです。SQL ステートメントについては、列にエイリアスが存在しない場合、結果はデータベースによって異なります。

  • source_column_type_name: 列の型の名前。たとえば VARCHARNCHARINTEGERBIGINT などです。

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

  • source_column_type_id: フィールドの「ソース型プロパティ」内のフィールド型を表す整数。たとえば、 INT = 4VARCHAR = 12 などです。

    このフィールドの値は、JDBC API (クラス java.sql.Types) によって定義されています。

  • source_column_type_size: この意味は、フィールドの型によって異なります。

    • テキスト値を格納する列の場合、これはフィールドの最大長を示します。

    • 数値型の場合は精度です。整数を格納する列の場合は 0 です。

  • source_column_type_decimals: 小数部を含む数値を格納する列の場合、これは小数部の最大桁数です。それ以外の型のフィールドの場合は 0 です。

  • source_package_name: データベースにストアドプロシージャを保持するパッケージの名前。プロシージャがパッケージに属していない場合、または基本ビューがストアドプロシージャにより作成されたものではない場合は null です。

  • source_column_parameter_type: 想定される値は以下のとおりです。

    • 1: パラメーターのモードは IN。

    • 2: パラメーターのモードは INOUT。

    • 4: パラメーターのモードは OUT。

    • 0: パラメーターのモードは不明。


このプロシージャは、以下の場合にはエラーを返します。

  • input_database_name または input_view_name が存在しない。

  • 基本ビューが JDBC 基本ビューではない。

必要な権限

このプロシージャは、基本ビューに対する METADATA 権限がユーザーにない場合はエラーを返します。

SELECT *
FROM GET_SOURCE_COLUMNS()
WHERE input_database_name = 'hr'
AND input_view_name = 'employees';