HiRDBのDBからデータを抽出する場合は,xtrepコマンドを使用します。xtrepコマンドで,抽出する表の名称や抽出方法を指定して,必要なデータだけを抽出できます。
HiRDB Dataextractorは,抽出したデータを反映対象の表の左の列から順に対応づけて反映します。このため,抽出対象の表と反映対象の表とで表の形式(列数,列の並び順)が異なる場合は,xtrepコマンドを使用して反映対象の表の形式に合わせてデータを抽出する必要があります。
HiRDB Dataextractorでは次の抽出ができます。
同一形式の表から,同一形式の表ヘ表単位に抽出できます。
例を次に示します。
表単位の抽出例を次の図に示します。
図3-2 表単位の抽出
抽出する列を選択したり,並べ替えたりして抽出できます。
列の選択や並べ替えは,HiRDBの次のSQLで指定します。
xtrepコマンドでSELECT文の選択式を記述したファイルの名称を指定します。
このファイルを列名記述ファイルと呼びます。
例を次に示します。
抽出する列の選択や並べ替えの例を次の図に示します。
図3-3 抽出する列の選択,並べ替え
抽出する行を選択したり,任意の列のデータの昇順または降順に行を並べ替えたりして抽出できます。
行の選択や並べ替えは,HiRDBの次のSQLで指定します。
行を選択して抽出する場合は,SELECT文のWHERE句で選択する条件を指定します。行を並べ替えて抽出する場合は,SELECT文のORDER BY句でソートのキーや並べ替え方法を指定します。
xtrepコマンドでSELECT文のWHERE句,ORDER BY句を記述したファイルの名称を指定します。
このファイルを表式記述ファイルと呼びます。
例を次に示します。
抽出する行の選択や並べ替えの例を次の図に示します。
図3-4 抽出する行の選択,並べ替え
FIX属性の表から抽出する場合,行単位インタフェースで抽出できます。行単位インタフェースで抽出すると,列ごとに検索するオーバヘッドがなくなるため,処理性能を向上できます。
行単位インタフェースでの抽出は,HiRDBの次のSQLで指定します。
xtrepコマンドでSELECT文の選択式を指定した列名記述ファイルの名称を指定します。
例を次に示します。
行単位インタフェースでの抽出例を次の図に示します。
図3-5 行単位インタフェースでの抽出
データの抽出時,抽出したデータがナル値の場合は,HiRDB Dataextractorは抽出したデータにHiRDB Dataextractorのナル値の既定値を設定します。データの反映時は,HiRDB Dataextractorは抽出データとHiRDB Dataextractorのナル値の既定値とを比較して,一致した場合にナル値を設定します。該当する列に非ナル値制約がある場合は,ナル値の既定値をデータとして反映します。
このため,抽出するデータ中にHiRDB Dataextractorのナル値の既定値と同じ値がある場合は,ナル値の既定値を変更する必要があります。ナル値の既定値の変更は,xtrepコマンドの-vオプションのナル値情報ファイルに指定します。
HiRDB Dataextractorのナル値の既定値(-vオプション省略時のナル値の既定値),およびナル値情報ファイルでの指定によって設定されるナル値の既定値については,「表4-11 ナル値の既定値」を参照してください。
例を次に示します。
ナル値の既定値の変更例を次の図に示します。
図3-6 ナル値の既定値の変更
HiRDB Dataextractorが仮定するナル既定値の省略時仮定値,およびナル値情報ファイルによるナル既定値の指定だけでは,抽出表の実データがナル既定値と同じ場合にナル値として反映されてしまいます。そこで,次のどちらかを実行することで,実データをナル値として反映することを防ぎます。
次に示すデータ型(データとして指定できない範囲の値があるもの)については,HiRDB Dataextractorが仮定するナル既定値の省略時仮定値として,実データとして指定できない範囲の値を設定することによって,実データをナル値として反映することを防ぎます。
なお,その他のデータ型についてはデータとして指定できない値がないため,従来通り運用上存在しない値をナル既定値として設定する必要があります。
ナル既定値を使用しないで,抽出データにナル値を判定するための情報を追加することによって,実データがナル値として反映されることを防ぎます。
なお,抽出データにナル値判定情報を追加した場合のデータ形式はデータベース作成ユティリティ(pdload)の-Wオプション指定時の入力データ形式となります。
HiRDB Dataextractorでは,繰返し列を抽出および反映対象にできます。
繰返し列を使用する場合の,次の項目について説明します。
繰返し列がある場合の,抽出側と反映側との列の組み合わせの可否を,次の表に示します。
表3-1 繰返し列がある場合の抽出側と反映側との列の組み合わせの可否
抽出側の列 | 反映側の列 | 要素数 | 対応 | ||
---|---|---|---|---|---|
繰返し列以外 | 繰返し列以外 | - | ○ | ||
繰返し列 | 全要素 | - | × | ||
特定要素 | - | - | |||
繰返し列 | 全要素 | 繰返し列以外 | - | × | |
繰返し列 | 全要素 | 抽出側=反映側 | ○ | ||
抽出側<反映側 | × | ||||
抽出側>反映側 | × | ||||
特定要素 | - | - | |||
特定要素 | 繰返し列以外 | - | ○ | ||
繰返し列 | 全要素 | - | × | ||
特定要素 | - | - |
繰返し列を使用する場合,次の指定によって,繰返し列をファイルに出力するときのデータ形式およびナル値反映方法を指定できます。
環境変数XTARRAYは,表単位にデータ形式,ナル値反映方法について設定する場合に指定します。列単位に設定する場合には,xtrepコマンドの-vオプションに指定するナル値情報ファイルで指定します。環境変数XTARRAYと,ナル値情報ファイルでの指定とを同時に指定した場合には,ナル値情報ファイルでの指定が優先されます。環境変数XTARRAYを省略した場合は,VVおよびCが仮定されます。
また,環境変数XTNLDFLTに2を指定した場合,HiRDB反映またはバイナリ形式のファイル作成時は,この環境変数の指定は無視され,VVおよびCとして処理されます。
繰返し列のデータ形式とナル値反映方法の指定できる組み合わせを,次の表に示します。
表3-2 繰返し列のデータ形式とナル値反映方法の指定の組み合わせ
実行する機能 | 指定値 | 指定可否 | ||
---|---|---|---|---|
データ形式 | ナル値反映方法 | |||
HiRDBの表に反映 | FF | なし | ○ | |
C | ||||
E | ||||
FV | なし | ○ | ||
C | × | |||
E | ||||
VV | なし | ○ | ||
C | × | |||
E | ||||
ファイル作成 | バイナリ形式 | FF | なし | ○ |
C | × | |||
E | ||||
FV | なし | ○ | ||
C | × | |||
E | ||||
VV | なし | × | ||
C | ||||
E | ||||
DAT形式 | FF | なし | ○ | |
C | × | |||
E | ||||
FV | なし | × | ||
C | ||||
E | ||||
VV | なし | ○ | ||
C | × | |||
E |
データ形式およびナル値反映方法の指定時の注意事項を次に示します。
HiRDBの表への反映時の繰返し列のデータ形式(バイナリ形式)を,「表3-3 HiRDBの表への反映時の繰返し列のデータ形式(バイナリ形式)」に示します。
バイナリ形式のファイル作成時の繰返し列のデータ形式を,「表3-4 バイナリ形式のファイル作成時の繰返し列のデータ形式」に示します。
DAT形式のファイル作成時の繰返し列のデータ形式を,「表3-5 DAT形式のファイル作成時の繰返し列のデータ形式」に示します。
環境変数XTNLDFLTに2を指定した場合のHiRDBの表への反映時およびバイナリ形式のファイル作成時の繰返し列のデータ形式を,「表3-6 環境変数XTNLDFLTに2を指定した場合のHiRDBの表への反映時およびバイナリ形式のファイル作成時の繰返し列のデータ形式」に示します。
表3-3 HiRDBの表への反映時の繰返し列のデータ形式(バイナリ形式)
抽出データ | 繰返し列に対する指定値 | 出力データの内容※ | 反映データ | |||||||
---|---|---|---|---|---|---|---|---|---|---|
データ形式 | ナル値反映方式 | |||||||||
要素あり | すべてあり | FF | - | 要素1 | … | 要素N | すべてあり | |||
FV | - | N | 要素1 | … | 要素N | |||||
VV | - | N | 要素1 | … | 要素N | |||||
途中まであり | FF | - | 要素1 | … | 要素n | … | ナル値N | 途中まであり | ||
FV | - | n | 要素1 | … | 要素n | … | ナル値N | |||
VV | - | n | 要素1 | … | 要素n | |||||
すべての要素なし | 列全体ナル値 | FF | 指定なし | ナル値1 | … | ナル値N | 列全体ナル値 | |||
C | ナル値1 | … | ナル値N | |||||||
E | ナル値1 | … | ナル値N | 各要素ナル値 | ||||||
FV | - | 0 | ナル値1 | … | ナル値N | 列全体ナル値 | ||||
VV | - | 0 | ||||||||
全要素ナル値 | FF | 指定なし | ナル値1 | … | ナル値N | 列全体ナル値 | ||||
C | ナル値1 | … | ナル値N | |||||||
E | ナル値1 | … | ナル値N | 各要素ナル値 | ||||||
FV | - | N | ナル値1 | … | ナル値N | 各要素ナル値 | ||||
VV | - | N | ナル値1 | … | ナル値N |
表3-4 バイナリ形式のファイル作成時の繰返し列のデータ形式
抽出データ | 繰返し列に対する指定値 | 出力データの内容※ | |||||||
---|---|---|---|---|---|---|---|---|---|
データ形式 | ナル値反映方式 | ||||||||
要素あり | すべてあり | FF | - | 要素1 | … | 要素N | |||
FV | - | N | 要素1 | … | 要素N | ||||
VV | - | N | 要素1 | … | 要素N | ||||
途中まであり | FF | - | 要素1 | … | 要素n | … | ナル値N | ||
FV | - | n | 要素1 | … | 要素n | … | ナル値N | ||
VV | - | n | 要素1 | … | 要素n | ||||
すべての要素なし | 列全体ナル値 | FF | - | ナル値1 | … | ナル値N | |||
FV | - | 0 | ナル値1 | … | ナル値N | ||||
VV | - | 0 | |||||||
全要素ナル値 | FF | - | ナル値1 | … | ナル値N | ||||
FV | - | N | ナル値1 | … | ナル値N | ||||
VV | - | N | ナル値1 | … | ナル値N |
表3-5 DAT形式のファイル作成時の繰返し列のデータ形式
抽出データ | 繰返し列に対する指定値 | 出力データの内容※ | 備考 | ||
---|---|---|---|---|---|
データ形式 | ナル値反映方式 | ||||
要素あり | すべてあり | FF | - | 要素1,…,要素N | コンマ数=N-1 |
FV | - | - | 指定不可 | ||
VV | - | N,要素1,…,要素N | コンマ数=N | ||
途中まであり | FF | - | 要素1,…,要素n,…, | コンマ数=N-1 | |
FV | - | - | 指定不可 | ||
VV | - | n,要素1,…,要素n | コンマ数=n | ||
すべての要素なし | 列全体ナル値 | FF | - | ,…, | コンマ数=N-1 |
FV | - | - | 指定不可 | ||
VV | - | 0 | コンマ数=0 | ||
全要素ナル値 | FF | - | ,…, | コンマ数=N-1 | |
FV | - | - | 指定不可 | ||
VV | - | N,…, | コンマ数=N |
表3-6 環境変数XTNLDFLTに2を指定した場合のHiRDBの表への反映時およびバイナリ形式のファイル作成時の繰返し列のデータ形式
抽出データ | 出力データの内容※1 | 反映データ※2 | ||||||
---|---|---|---|---|---|---|---|---|
要素あり | すべてあり | N | ナル値フラグ1 | 要素1 | … | ナル値フラグN | 要素N | 要素あり |
途中まであり | n | ナル値フラグ1 | 要素1 | … | ナル値フラグn | 要素n | 途中まであり | |
要素なし | 列全体ナル値 | (オフセットに0を設定し,列データは作成しない) | 列全体ナル値 | |||||
全要素ナル値 | N | ナル値フラグ1 | … | ナル値フラグN | 全要素ナル値 |
抽出データ | ナル値フラグ | 要素情報の作成有無 |
---|---|---|
ナル値 | 1 | 作成しません。ナル値フラグだけとなります。 |
非ナル値 | 0 | 作成します。 |
HiRDB Dataextractorは,抽象データ型(ADT:Abstract Data Type)の列を抽出および反映対象にできます。
SGMLTEXT型では,原文書をBLOB属性で定義しています。HiRDB Dataextractorは,この原文書を抽出します。
SGMLTEXT型については,マニュアル「HiRDB 全文検索プラグイン HiRDB Text Search Plug-in Version 8」を参照してください。
ここでは,SGMLTEXT型のデータの抽出方法について説明します。
SGMLTEXT型のデータを抽出するためには,次の環境変数の指定が必要です。
SGMLTEXT型のデータを抽出するためには,xtrepコマンドに次の指定が必要です。
XML型では,原文書をBINARY属性で定義しています。HiRDB Dataextractorは,この原文書を抽出します。
XML型については,マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。
ここでは,XML型のデータの抽出方法について説明します。
XML型のデータを抽出するためには,次の環境変数の指定が必要です。
XML型のデータを抽出するためには,xtrepコマンドに次の指定が必要です。
FREEWORD型では,原文書をVARCHAR属性で定義しています。HiRDB Dataextractorは,この原文書を抽出します。
FREEWORD型については,マニュアル「HiRDB 全文検索プラグイン HiRDB Text Search Plug-in Version 8」を参照してください。
ここでは,FREEWORD型のデータの抽出方法について説明します。
FREEWORD型のデータを抽出するためには,xtrepコマンドに次の指定が必要です。
FREEWORD型のデータを抽出する場合は,次の条件を満たしている必要があります。