5

私はオラクルを実行しており、データベースからいくつかの結果を引き出すクエリがあります。結果をテキストファイルとして書きたいと思います。どうすればこれを行うことができますか?

私の好みの方法は、UTL_FILE を使用することです。誰かがこれを行う方法の例を持っていますか?

4

5 に答える 5

4

PL / SQLを使用している場合は、UTL_FILEパッケージを使用できます。sql+スプールを使用する場合との違いは、ファイルがサーバーのファイルシステムに書き込まれることです。UTL_FILEにはいくつかの制限があるため、サーバー側での代替手段はJavaストアドプロシージャを使用することです。

于 2008-08-26T10:17:37.340 に答える
4

Sql Plus を使用している場合は、次のように簡単です。

SQL> スプール c:\temp\out.txt
SQL> SELECT * FROM ユーザー;
SQL> スプールオフ

この 3 つの文は、クエリ "SELECT * FROM USERS" の結果をファイル c:\temp\out.txt に出力します。

このクエリは、Oracle の文字列操作関数を使用してフォーマットできます。

于 2008-08-26T08:47:39.430 に答える
2

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;

于 2008-09-02T12:46:36.710 に答える
1

sqlplusからクエリを実行している場合は、spool コマンドを使用できます。

スプール /tmp/test.spool

セッション内で spool コマンドを実行すると、すべての出力が sqlplus コンソールと /tmp/test.spool テキスト ファイルに送信されます。

于 2008-08-26T08:42:04.793 に答える
0

これは、いくつかの簡単な例を含む妥当なチュートリアルのようですUTL_FILE の例

于 2008-08-26T14:44:09.667 に答える