名前
rdbunlsql -- SQL文による検索結果のファイルへの出力
形式
rdbunlsql -d データベース名 { -v SQL文記述ファイル | -s 問合せ式 [ORDER BY句] [更新可能性句] [並列指定] [実行オプション指定] } [ -n ] [ { -t | -o } ] [ -j { EUC_S90 | SJIS | UNICODE } ] [ -U NCHAR=UCS2B ] 出力ファイル名
機能説明
表に対する問合せ式の結果のデータをファイルに出力します。
出力ファイルの出力形式にて、ファイル形式がテキスト形式で、区切り記号がコンマ(,)の場合、CSV形式のファイルで出力できます。
オプション
データを取り出すデータベースの名前を指定します。
問合せ式、ORDER BY句、更新可能性句、並列指定および実行オプション指定を記述したファイルを絶対パス名で指定します。
ファイル名に指定できる長さは、256バイトまでです。
問合せ式、ORDER BY句、更新可能性句、並列指定および実行オプション指定の詳細については、“SQLリファレンス”を参照してください。
問合せ式、ORDER BY句、更新可能性句、並列指定および実行オプション指定を、オプションで指定します。
問合せ式、ORDER BY句、更新可能性句、並列指定および実行オプション指定の詳細については、“SQLリファレンス”を参照してください。
なお、一般的に問合せ式、ORDER BY句、更新可能性句、並列指定および実行オプション指定の記述中では空白を含むため、二重引用符(")で囲むなど、1つのオプションとなるように指定してください。
また、シェルで特別な意味を持つ文字を含む場合にも、シェルの規則に従って通常の文字として扱われるように指定してください。
すべてのカラムの先頭に、NULL表示用の領域を付加しないで出力します。
この場合、データにNULL値を含む行は出力されません。
本オプションを省略した場合は、すべてのカラムの先頭にNULL表示用の領域を付加します。
この場合、データにNULL値を含む行は出力の対象となります。
データにNULL値を含む行を出力しない場合に指定します。
本オプションを省略した場合は、データにNULL値を含む行は出力の対象となります。
出力ファイルのデータをテキスト形式で出力する場合に指定します。
本オプションを省略した場合は、バイナリ形式で出力します。
出力ファイルのデータを可変長バイナリ形式で有効長だけを出力する場合に指定します。
本オプションを省略した場合は、可変長列の定義長分が出力されます。
出力データのコード系を指定します。
出力データのコード系は、以下のものが指定できます。
EUC_S90 : EUCコードのS90コード
SJIS : シフトJISコード
UNICODE : UTF8
本オプションを省略した場合は、処理対象のデータベースのコード系が指定されたものとみなします。
なお、本オプションは、出力ファイルのデータがテキスト形式の場合にのみ指定できます。
各国語文字列型のコードをUCS2のバイトスワップ形式(リトルエンディアン)で出力したい場合に指定します。
なお、本オプションは、対象データベースのコード系がUNICODEかつ出力データがバイナリ形式の場合のみ指定できます。
データを出力するファイルの、ファイル名を絶対パス名で指定します。ファイル名に指定できる長さは、256バイトまでです。
なお、出力ファイルの形式の詳細については、“RDB運用ガイド”の外部ファイルの形式を参照してください。
使用例
在庫管理DBに属する在庫表の検索結果をc:\rdb\data上のファイル名unlsql1.datにバイナリ形式で出力します。
各国語文字列型のデータをUCS2のバイトスワップ形式(リトルエンディアン)で出力します。
rdbunlsql -d 在庫管理DB -v c:\rdb\data\select.dat -U NCHAR=UCS2B c:\rdb\data\unlsql1.dat
SELECT 製品名,SUM(在庫数量) FROM 在庫管理DB.在庫表 WHERE 製品番号 < 350 GROUP BY 製品名 HAVING MAX(在庫数量) <100
在庫管理DBに属するT1とT2の検索結果をc:\rdb\data上のファイル名unlsql2.txtにテキスト形式で出力します。
rdbunlsql -d 在庫管理DB -s "SELECT * FROM S.T1,S.T2 WHERE T1.KEY=T2.KEY" -t c:\rdb\data\unlsql2.txt
終了ステータス
以下の終了ステータスが返されます。
0 : 正常終了
0以外 : 異常終了
注意
本コマンドは、指定された問合せ式、ORDER BY句、更新可能性句、並列指定および実行オプション指定を処理するアプリケーションと同様に動作します。
本コマンドは、環境変数または動作環境ファイルを指定することにより、アプリケーションと同様のチューニングが可能です。チューニング方法の詳細については、“アプリケーション開発ガイド(共通編)”および“RDB運用ガイド”を参照してください。
バイナリ形式の出力ファイルの内容を以下に説明します。
-nオプションを指定しない場合、それぞれの列データの先頭にNULL表示を出力します。NULL表示は2バイトの符号付き2進数の領域です。表の列の値がNULL値の場合、-1(16進でffff)を設定します。そうでない場合には、0(16進で0000)を設定します。
-nオプションを指定した場合、NULL値を含む行のデータは出力されません。
テキスト形式の出力ファイルの内容を以下に説明します。
データ項目がNULL値の場合は、そのデータ項目に対応する値は設定されません。すなわち、行の先頭のデータ項目がNULL値の場合は、行の先頭にはコンマ(,)が出力されます。行の途中のデータ項目がNULL値の場合は、コンマ(,)が連続して出力されます。行の最後のデータ項目がNULL値の場合は、コンマ(,)の直後に改行文字が出力されます。なお、出力対象の列が1個だけでかつNULL値の場合には、行の先頭に改行文字が出力されます。なお、NULL値のデータ項目を含む行は、-nオプションを指定した場合は出力されません。
BLOB属性の列を出力データの対象とすることはできません。
出力ファイルは本コマンド実行者の許可モードを持つファイルが作成されます。
本コマンドを実行する場合、処理対象の実表に対するSELECT権が必要です。
問合せ式の選択リストの値式に長さ0の文字列定数または各国語文字列定数を指定した場合、バイナリ形式での出力はできません。
バイナリ形式で出力する場合は、CAST指定により長さ1以上の文字列型または各国語文字列型のデータ型を指定してください。
rdbunlsql -d 在庫管理DB -s "SELECT 製品名,CAST(''AS VARCHAR(10)) FROM 在庫スキーマ.在庫表" c:¥rdb¥data\stock_unlsql.dat
USER_CONTROLにYESを指定している場合、CREATE USER文のWITH句でOSを指定した利用者のみ実行することができます。