私はオラクルを実行しており、データベースからいくつかの結果を引き出すクエリがあります。結果をテキストファイルとして書きたいと思います。どうすればこれを行うことができますか?
私の好みの方法は、UTL_FILE を使用することです。誰かがこれを行う方法の例を持っていますか?
私はオラクルを実行しており、データベースからいくつかの結果を引き出すクエリがあります。結果をテキストファイルとして書きたいと思います。どうすればこれを行うことができますか?
私の好みの方法は、UTL_FILE を使用することです。誰かがこれを行う方法の例を持っていますか?
PL / SQLを使用している場合は、UTL_FILEパッケージを使用できます。sql+スプールを使用する場合との違いは、ファイルがサーバーのファイルシステムに書き込まれることです。UTL_FILEにはいくつかの制限があるため、サーバー側での代替手段はJavaストアドプロシージャを使用することです。
Sql Plus を使用している場合は、次のように簡単です。
SQL> スプール c:\temp\out.txt SQL> SELECT * FROM ユーザー; SQL> スプールオフ
この 3 つの文は、クエリ "SELECT * FROM USERS" の結果をファイル c:\temp\out.txt に出力します。
このクエリは、Oracle の文字列操作関数を使用してフォーマットできます。
UTL_FILE を CREATE DIRECTORY と組み合わせて使用すると、ディレクトリ パスと名前を簡単にマッピングできます (ディレクトリ パスを参照するだけでは実際のディレクトリは作成されないため、必ず最初に作成してください)。
例
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;
sqlplusからクエリを実行している場合は、spool コマンドを使用できます。
スプール /tmp/test.spool
セッション内で spool コマンドを実行すると、すべての出力が sqlplus コンソールと /tmp/test.spool テキスト ファイルに送信されます。
これは、いくつかの簡単な例を含む妥当なチュートリアルのようですUTL_FILE の例