OUTFILEコマンドによって、文のテキスト出力をファイルにリダイレクトできます。
構文
OUTFILE {EOF | TRACEFILE | [APPEND] file-name [NOCACHE] [NLS_CHARSET charset-exp]}
引数
現行の出力ファイルは閉じられ、出力がデフォルトの出力ファイルにリダイレクトされます。
TRACEFILEUNITオプションによって識別されるOracleトレース・ファイルに出力が送信されることを指定します。
出力を既存のディスク・ファイルの末尾に追加することを指定します。この引数を省略すると、ファイルの現在の内容は新しい出力によって置き換えられます。
出力が書き込まれるファイルの名前を表すテキスト式。そのファイルがカレント・ディレクトリにない場合、ファイルの名前にディレクトリ・オブジェクトの名前を含める必要があります。
注意: ディレクトリ・オブジェクトはデータベースで定義され、ディレクトリおよびディレクトリ内のファイルへのアクセスを制御します。CDA文を使用して、カレント・ディレクトリ・オブジェクトを特定および指定できます。使用するデータベース・ユーザー名で読取りおよび書込み可能なファイルがあるディレクトリ・オブジェクトへのアクセス権については、Oracle DBAに問い合せてください。 |
行が生成されるたびにOracle OLAPが出力ファイルに行を書き込むことを指定します。このキーワードを指定しなかった場合、Oracle OLAPでは、ファイルのI/Oアクティビティを軽減するため、テキストの保存およびファイルへの書込みが定期的に実行されます。NOCACHEキーワードを指定するとパフォーマンスが大幅に低下しますが、各行が出力ファイルに即座に記録されます。この引数はfile-nameの後に指定する必要があります。
file-nameによって指定されるファイルにデータを書き込む際にOracle OLAPが使用するキャラクタ・セットを指定します。これにより、Oracle OLAPはデータをそのキャラクタ・セットに正確に変換できます。この引数はfile-nameの後に指定する必要があります。この引数を省略すると、Oracle OLAPはNLS_LANGオプションに記録されているデータベース・キャラクタ・セットでデータをファイルに書き込みます。
注意
PERMIT_READまたはPERMIT_WRITEプログラムのファイル出力
PERMIT_READまたはPERMIT_WRITEプログラムの内容はファイル出力時に空になります。これらのプログラムの内容をアナリティック・ワークスペースに(およびアナリティック・ワークスペースから)正常にコピーするには、OUTFILEを使用する前にプログラムの名前を変更します。次に、INFILEを使用してプログラムをアナリティック・ワークスペースにコピーしたら、変更した名前をPERMIT_READまたはPERMIT_WRITEに戻します。
現行の出力ファイル識別子
OUTFILE文は実行されるたびに、最初の手順として現行の出力ファイルを閉じます。OUTFILEによってディスク上の新しいファイルが開かれると、このファイルにはファイル・ユニット番号として不定のINTEGER
が自動的に割り当てられます。現行ファイル・ユニット番号は、OUTFILEUNITオプションで保持されます。
出力ファイルへの追加
出力をあるファイルに送信後、2番目のファイルに送信すると、最初のファイルは開いたままにはなりません。最初のファイルへの出力の送信を再開するには、別のOUTFILE文を実行してAPPEND file-name句を指定する必要があります。
出力ファイルの自動クローズ
OUTFILE file-nameを使用して出力をディスク・ファイルへ送ると、現在開いている出力ファイルはすべて閉じられます。この動作は、新しいファイルが実際には開いていない場合にも実行されます(OUTFILE文に無効なfile-nameを指定した場合と同様です)。
ページング・オプションとリダイレクトされる出力
ページング・オプションは、各ページのテキスト出力の編成を制御します。このオプションには、BMARGIN、LINENUM、LINELEFT、PAGESIZE、PAGENUM、PAGEPRG、PAGING、TMARGINおよびLSIZEがあります。これらのページング・オプションは、出力ファイルごとに個別の値を持ちます。ディスク・ファイルへの出力を制御するためにページング・オプションのいずれかを設定した場合、OUTFILE文を再度使用して出力をリダイレクトするまで、その新しい値が有効です。コマンドを再度使用すると、ページング・オプションはデフォルト値に戻ります。したがって、ディスク・ファイルに対してページング・オプションを特定の値にする場合、通常、OUTFILE文を実行してからそのオプションを設定します。
行の最大長さ
Oracle OLAPにおける行の最大長は4000文字です。
現行の出力ファイルとデフォルトの出力ファイル
現行の出力ファイルとは、REPORTやDESCRIBEなど、テキストを生成する文の出力先となるファイルです。OUTFILE文を使用せずに出力をファイルに送ると、Oracle OLAPはデフォルトの出力ファイルを使用します。
例
例10-69 レポートの出力ファイルへの送信
この例では、REPORT文の出力を出力ファイルに送信します。
OUTFILE 'budget.rpt' REPORT budget OUTFILE EOF
例10-70 出力のファイルへの送信
year.end.sales
という名前のプログラムがあり、このプログラムが作成するレポートをファイルに保存するとします。次のコマンドを入力してレポートをファイルに書き込みます。この例では、userfiles
がディレクトリ・オブジェクトであり、yearend.txt
がファイル名です。
OUTFILE 'userfiles/yearend.txt' year.end.sales OUTFILE EOF
これにより、ファイルにyear.end.sales
レポートが格納されます。OUTFILEのAPPEND
キーワードを使用すると、同じファイルにレポートを追加できます。year.end.expenses
という名前の別のプログラムがあるとします。次のコマンドを使用して、このプログラムのレポートをファイルに追加します。APPEND
を指定しないでOUTFILE文を実行すると、このexpensesレポートが上書きされます。
OUTFILE APPEND 'userfiles/yearend.txt' year.end.expenses OUTFILE EOF