私はOracleを実行しており、データベースからいくつかの結果を取得するクエリを持っています。結果をテキストファイルとして書きたいと思います。これをどうやってやりますか?Oracleがファイルに書き込む
私の推奨する方法は、UTL_FILEを使用することです。どのようにこれを行う方法の例がありますか?あなたは SQLPLUSあなたはスプールコマンドを使用することができますから、クエリを実行している場合
私はOracleを実行しており、データベースからいくつかの結果を取得するクエリを持っています。結果をテキストファイルとして書きたいと思います。これをどうやってやりますか?Oracleがファイルに書き込む
私の推奨する方法は、UTL_FILEを使用することです。どのようにこれを行う方法の例がありますか?あなたは SQLPLUSあなたはスプールコマンドを使用することができますから、クエリを実行している場合
PL/SQLを使用している場合はUTL_FILEパッケージを使用できますが、sql + spoolの使用との違いは、ファイルがサーバー・ファイル・システムに書き込まれていることです。 UTL_FILEにはいくつかの制限があるため、サーバー側でJavaストアド・プロシージャを使用する方法があります。
:セッション内のスプールコマンドを実行した後
spool /tmp/test.spool
を、すべての出力は、SQLPLUSコンソールに送信だけでなく、さ/tmp/test.spoolテキストファイル。
は、SQL Plusを使用している場合は、同じくらい簡単です:\ tempに\アウト:この3文は、ファイルcへの出力クエリの結果を "USERS SELECT * FROM" になる
SQL> spool c:\temp\out.txt SQL> SELECT * FROM USERS; SQL> spool off
。 TXT。
このクエリは、Oracleの文字列操作関数を使用して書式設定できます。
これは(それが実際のディレクトリにするだけの参照を作成しない名前のディレクトリ・パスをマッピングを容易にするために、CREATE DIRECTORYとの組み合わせでいくつかの簡単な例UTL_FILE example
使用UTL_FILEでの合理的なチュートリアルのようですそのように
create directory logfile as 'd:\logfile'; -- must have priv to do this
declare
vFile utl_file.file_type;
begin
vFile := utl_file.fopen(logfile ,'syslog','w'); -- w is write. This returns file handle
utl_file.put(vFile,'Start Logfile'); -- note use of file handle vFile
utl_file.fclose(vFile); -- note use of file handle vFile
end;
例)それが最初に作成されていることを確認します