名前
rdbunlx - XMLデータの検索結果のファイルへの出力
形式
rdbunlx -i データベース名.DSI名 -c 列名 -v 検索定義ファイル名 -o 出力定義ファイル名 [ -r エラーデータ出力ファイル名 ]
機能説明
XMLデータの検索結果をファイルに出力します。
データベースに格納されたXMLデータに対して、検索定義ファイルで指定した条件を満たすXMLデータを、出力定義ファイルに記述したファイルに出力します。
オプション
検索を実行する表のDSI名を指定します。
本コマンドで指定できるDSIは、SEQUENTIAL構造のDSIのみです。
検索対象の表を構成する列の中から、XMLデータが格納されている列名を指定します。
なお、列名には、BLOB型の列以外を指定することはできません。
検索を行う条件であるXML検索式を記述した検索定義ファイル名を絶対パス名で指定します。ファイル名に指定できる長さは、256バイトまでです。
検索定義ファイル中に指定する検索式は、1から1000個まで指定できます。
検索定義ファイルは、UTF-8形式で作成する必要があります。
以下に、ファイルの記述形式を説明します。
# コメント
検索番号 XML検索式 %
<改行>
先頭に“#”がある行は、コメント行として読みとばされます。このとき、“#”は必ず行の先頭に記述する必要があります。
検索番号とXML検索式の間に、空白またはタブを記述する必要があります。
ファイル内には空行を含むことができます。
検索番号は、1から1000までの範囲で、重複しない番号を指定します。
検索を行う条件である検索式を指定します。
XML検索式は、UTF-8形式で記述する必要があります。
XML検索式は、複数行で記述することができます。その場合は、論理演算子(andまたはor)の前または後ろで改行してください。
XML検索式の最後には、終了子(%)を指定してください。終了子の後ろには改行を記述する必要があります。
XML検索式の最大長は、32767バイトです(改行は含みません)。
XML検索式に指定するフィルタ式のネストの数は50までです。
XML検索式の記述方法については、“RDB運用ガイド”を参照してください。
検索定義ファイルに記述したXML検索式に対して、検索結果を出力するファイルを記述した出力定義ファイル名を、絶対パス名で指定します。
ファイル名に指定できる長さは、256バイトまでです。
以下にファイルの記述形式を説明します。
# コメント
検索番号 検索結果の出力ファイル
<改行>
先頭に“#”がある行は、コメント行として読みとばされます。このとき、“#”は必ず行の先頭に記述する必要があります。
検索番号と検索結果の出力ファイルの間に、空白またはタブを記述する必要があります。
ファイル内には空行を含むことができます。
検索番号には、検索定義ファイルに指定した検索番号と同じ番号を指定します。
検索定義ファイルに指定した検索番号と出力定義ファイルに指定した検索番号の対応が正しくない場合には、コマンドが異常終了します。
検索定義ファイルで記述したXML検索式に対し、その検索条件を満たすXMLデータを出力するファイルを絶対パスで指定します。
検索結果の出力ファイルに空白を含む場合には、二重引用符(")で検索結果の出力ファイルを囲んでください。
検索結果の出力ファイルに指定できる長さは、256バイトまでです。
検索結果の出力ファイルには、同一の出力ファイル名を指定することはできません。
本コマンド実行中に、XMLの形式が正しくないデータを検出した場合、エラーデータを出力するファイル名を絶対パス名で指定します。
ファイル名に指定できる長さは256バイトまでです。
本オプションを省略した場合は、XMLの形式が正しくないデータは、検索対象外のデータとして扱われます。
本オプションを指定し、すべてのXMLデータの形式が正しい場合、エラーデータ出力ファイルが0バイトの大きさで作成されます。
本コマンドが異常終了した場合、エラーデータ出力ファイルは作成されません。
使用例
伝票DBに属する2007年1月のDSIに対して、rdbunlxコマンドを実行します。
検索定義ファイル名は、/home/rdb2/cfg/selquery.txt、出力定義ファイル名は、/home/rdb2/cfg/seloutput.txtとします。
rdbunlx -i 伝票DB.DSI_2007_01 -c 伝票 -v /home/rdb2/cfg/selquery.txt -o /home/rdb2/cfg/seloutput.txt
1 /受注伝票[契約日/text() = "2007-01-01" and 伝票番号/text() = "E001001"] % 2 /受注伝票[受注先/text() = "ABC銀行"] % 3 /受注伝票[受注先/text() = "ABC銀行" and 商品/個数/text() > 100] %
1 /home/rdb2/outdata/001kekka.xml 2 /home/rdb2/outdata/002kekka.xml 3 /home/rdb2/outdata/003kekka.xml
終了ステータス
以下の終了ステータスが返されます。
0 : 正常終了
0以外 : 異常終了
注意
本コマンドを実行する場合、処理対象のDSIが所属する実表に対するSELECT権が必要です。
必要な権限を含むロールを付与されている利用者が、本コマンドを実行したい場合は、セキュリティ形態パラメタのROLE_RANGEパラメタの設定が必要です。ROLE_RANGEパラメタの詳細については、“SQLリファレンス”の“SET SYSTEM PARAMETER文”を参照してください。
出力ファイルは本コマンドの実行者の許可モードを持つファイルが作成されます。
出力定義ファイルに指定された出力ファイルがすでに存在する場合は、本コマンドは異常終了します。
検索定義ファイルに指定された検索条件を満たすデータがない場合、出力定義ファイルで指定された出力ファイルが0バイトの大きさで作成されます。
本コマンドが異常終了した場合、すべての出力ファイルは作成されません。
検索定義ファイルまたは出力定義ファイルは、ファイルの行数が2147483647行以内で記述してください。
検索番号は、数値で指定しますが、“001”のように“0”から始まる表記はできません。
XML宣言やDTDなどの前書きの部分は、XML検索式の検索の対象になりません。
コメントおよび処理命令は、XML検索式の検索の対象になりません。
1つの要素内に同じ属性が重複して存在する場合、すべての属性がXML検索式の検索対象として扱われます。
DTD宣言で指定した属性のデフォルト値での検索はできません。また、検索結果においても属性のデフォルト値は有効になりません。
改行文字を含む文字列を指定して検索する場合は、XML検索式の比較式の右辺のリテラルに改行コードを含む文字列を指定します。改行コードは、XMLデータの改行コードと同じにしてください。
“XMLの形式が正しくないデータ”とは、“RDB運用ガイド”の“XMLデータの形式”に記述されているXMLデータの形式を満たさないXMLデータです。ただし、BLOB列のデータがNULL値の場合は、XMLの形式が正しくないデータとしてはみなされません。