FETCHコマンドは、SQLによるアナリティック・ワークスペース・データへのアクセス時に使用するOLAP_TABLE
ファンクションで作成されるリレーショナル表での使用を目的として、アナリティック・ワークスペース・データを取得する方法を指定するコマンドです。
FETCHコマンドは、OLAP_TABLE
ファンクションのOLAP_commandパラメータでのみ使用できます。それ以外のコンテキストでは使用できません。
OLAP_TABLE
ファンクション内で、FETCHキーワードは、アナリティック・ワークスペース・データが表オブジェクトにマッピングされる方法を明示的に指定します。FETCHキーワードは、Oracle Databaseに移植するOLAPアプリケーション用に提供されています。
注意: SNAPIのFETCHコマンドを使用していたExpressアプリケーションをアップグレードする場合にのみ、OLAP_TABLEでFETCHキーワードを使用します。Expressアプリケーションをアップグレードする場合、構文はExpress 6.3と同じです。前に使用していたのと同じFETCHコマンドを使用できます。 |
OLAP_TABLE
の引数としてFETCHを使用する場合、改行や継続マークを付けずに、文全体を1行で入力する必要があります。
OLAP DMLに埋め込まれたSQLコマンドを使用してリレーショナル表からアナリティック・ワークスペース・オブジェクトにデータをフェッチまたはインポートするには、OLAP DML SQLコマンドを使用します。
構文
FETCH expression... [TAG tag-exp] [LABELED] [data-order]
ここで、data-orderは次のいずれかです。
パラメータ
各ターゲット列に対して1つの式で、行定義に現れるのと同じ順序です。式は空白またはカンマで区切ります。
このキーワードは無視されます。下位互換性のためにのみ構文に残されています。
このキーワードは無視されます。下位互換性のためにのみ構文に残されています。すべてのフェッチにラベルが付けられます。
<order-dim...>に指定されるディメンション・リストに従ってデータ・ブロックを順序付けます。山カッコで囲んでディメンションまたはコンポジット、あるいはその2つの組合せを指定します。複数のディメンションは、最初のディメンションが最も変化の速いディメンションとなり、最も変化の速いディメンションから最も変化の遅いディメンションという順序になります。USING句を指定すると、ACROSSおよびDOWNを指定できません。
列および行のデータ・ブロックを順序付け、列ディメンションを指定します。across-dimには、1つ以上のディメンション、コンポジット、NONEキーワード、あるいはこれらの組合せのリストを指定します。複数のACROSSディメンションを指定すると、最初のディメンションが最も変化の遅いディメンションとなり、最も変化の遅いディメンションから最も変化の速いディメンションへと変化します。
DOWNではなくACROSSを指定した場合、指定されないディメンションはすべて、デフォルトでDOWNディメンションに設定され、オブジェクト定義の順序で最も変化の速いディメンションから最も変化の遅いディメンションへと変化します。ただし、NONEキーワードをACROSSディメンション・リストに追加すると、指定されないDOWNディメンションのステータスにある最初の値のみがフェッチされます。
ACROSS句を指定すると、USING句を指定できません。
列および行のデータ・ブロックを順序付け、行ディメンションを指定します。down-dimには、1つ以上のディメンション、コンポジット、NONE
キーワード、あるいはこれらの組合せのリストを指定します。複数のDOWN
ディメンションを指定すると、最初のディメンションが最も変化の遅いディメンションとなり、最も変化の遅いディメンションから最も変化の速いディメンションへと変化します。
ACROSSではなくDOWNを指定した場合、指定されないディメンションはすべて、デフォルトでACROSSディメンションに設定され、オブジェクト定義の順序で最も変化の速いディメンションから最も変化の遅いディメンションへと変化します。ただし、NONEキーワードをDOWNディメンション・リストに追加すると、指定されないACROSSディメンションのステータスにある最初の値のみがフェッチされます。
DOWN句を指定すると、USING句を指定できません。
使用上の注意
デフォルトのデータの順序
USINGまたはDOWN/ACROSS句を指定しない場合、データのディメンションはワークスペースのオブジェクト定義のリストの順序で最も変化の速いディメンションから最も変化の遅いディメンションへと変化します。
ディメンション性が異なる複数の式の使用方法
ディメンション性が異なる複数の式を1つのFETCHコマンドで指定した場合、最も変化の速いディメンションから最も変化の遅いディメンションへと変化するディメンションの順序は予測できません。
データ・ブロックの最大サイズ
MAXFETCHを使用して、FETCHによって生成されるデータ・ブロックのサイズに上限を設定できます。
コンポジットで定義された変数
コンポジットで定義された変数の場合、FETCHのACROSS句、DOWN句およびUSING句で、ベース・ディメンションのかわりにコンポジットを指定できるため、結果のデータ・ブロックでNAフィールド数を最小限にできます。変数が名前付きコンポジットで定義されている場合、USING、DOWNまたはACROSSキーワードの後にそのコンポジットの名前を指定できます。名前のないコンポジットは、それを定義するために使用した構文で指定します。たとえば、変数d.salesの定義では次のように指定します。
DEFINE d.sales VARIABLE DECIMAL <month SPARSE<product district>>
USING、DOWNまたはACROSSキーワードの直後に式SPARSE<product district>
を指定することによってフェッチできます。