TABLE_SCHEMA スカラー関数
TABLE_SCHEMA 関数は、別名チェーンが解決された後で検出されるオブジェクトのスキーマ名を戻します。
スキーマは SYSIBM です。
指定された object-name (および object-schema) が、解決の開始点として使用されます。開始点が別名を参照していない場合は、開始点のスキーマ名が戻されます。 結果のスキーマ名は、表、ビュー、または未定義オブジェクトのいずれかになります。 Unicode データベースでは、指定した引数が GRAPHIC ストリングであると、 まず文字ストリングに変換されてから、関数が実行されます。
- object-name
- 解決しようとする非修飾名 (通常は既存の別名) を表す文字式。 object-name は、CHAR または VARCHAR のデータ・タイプ、1 バイト以上 129 バイト未満の長さでなければなりません。
- object-schema
- 指定された object-name の解決前の値を修飾するのに使うスキーマを表す文字式。object-schema は、CHAR または VARCHAR のデータ・タイプ、1 バイト以上 129 バイト未満の長さでなければなりません。
object-schema を指定しない場合は、修飾子にデフォルトのスキーマが使用されます。
- table
- object-name の値が、表名 (object-schema の入力値またはデフォルト値が戻される) であったか、あるいは解決結果が表となり、そのスキーマ名が戻されることになる別名であった。
- view
- object-name の値が、ビュー名 (object-schema の入力値またはデフォルト値が戻される) であったか、あるいは解決結果がビューとなり、そのスキーマ名が戻されることになる別名であった。
- 未定義オブジェクト
- object-name の値が、未定義オブジェクト名 (object-schema の入力値またはデフォルト値が戻される) であったか、あるいは解決結果が未定義オブジェクトとなり、そのスキーマ名が戻されることになる別名であった。
したがって、NULL 以外の object-name 値がこの関数に指定された場合、結果のスキーマ名を持つオブジェクト名が存在していなくても、常に値が戻されます。例えば、TABLE_SCHEMA('DEPT', 'PEOPLE') は、
カタログ項目が見つからない場合には、'PEOPLE ' を戻します。
注
- パーティション・データベース構成において、TABLE_SCHEMA および TABLE_NAME スカラー関数を使用するときにコーディネーター・パーティションとカタログ・パーティションの間で生じる不必要な通信を避けることによって、パフォーマンスを改善するには、代わりに BASE_TABLE 表関数を使用することができます。
例
- 例 1: PBIRD は、表 HEDGES.T1 に定義されている別名 PBIRD.A1 を使用して、
SYSCAT.TABLES から指定した表の統計値を選択しようとしています。
SELECT NPAGES, CARD FROM SYSCAT.TABLES WHERE TABNAME = TABLE_NAME ('A1') AND TABSCHEMA = TABLE_SCHEMA ('A1')HEDGES.T1 について要求された統計値が、カタログから取り出されます。
- 例 2: HEDGES.X1 というオブジェクトの統計値を、
HEDGES.X1 を使用して SYSCAT.TABLES から選択します。
HEDGES.X1 が別名か表かが分からないため、
TABLE_NAME と TABLE_SCHEMA を使用します。
SELECT NPAGES, CARD FROM SYSCAT.TABLES WHERE TABNAME = TABLE_NAME ('X1','HEDGES') AND TABSCHEMA = TABLE_SCHEMA ('X1','HEDGES')HEDGES.X1 が表であるとすると、 HEDGES.X1 について要求された統計がカタログから取り出されます。
- 例 3: HEDGES.T2 に対して定義された別名 PBIRD.A2 を使用して、
SYSCAT.TABLES から指定した表の統計を選択しますが、HEDGES.T2 は存在していません。
SELECT NPAGES, CARD FROM SYSCAT.TABLES WHERE TABNAME = TABLE_NAME ('A2','PBIRD') AND TABSCHEMA = TABLE_SCHEMA ('A2',PBIRD')TABNAME = 'T2' および TABSCHEMA = 'HEDGES' である項目が SYSCAT.TABLES の中に見つからないため、 このステートメントからは 0 個のレコードが戻されます。
- 例 4: SYSCAT.TABLES 内の各項目の修飾名、
および別名項目については最終参照名を選択します。
SELECT TABSCHEMA AS SCHEMA, TABNAME AS NAME, TABLE_SCHEMA (BASE_TABNAME, BASE_TABSCHEMA) AS REAL_SCHEMA, TABLE_NAME (BASE_TABNAME, BASE_TABSCHEMA) AS REAL_NAME FROM SYSCAT.TABLESこのステートメントは、カタログ内の各オブジェクトの修飾名と、 別名項目については最終参照名 (別名が解決された後の名前) を戻します。 別名でないすべての項目については、 BASE_TABNAME および BASE_TABSCHEMA が NULL 値であるため、 REAL_SCHEMA 列と REAL_NAME 列は NULL 値になります。
