2012-03-24 8 views
1

PL/SQLブロックでは、Oracleテーブルの内容をハードドライブのテキストファイルに転送することができます。私は、テーブル・ウィッチの内容をダウンロードできるPL/SQLブロックが必要です。ログ・データをテキスト・ファイルに格納するために使用されます。Oracleテーブルからテキストファイルにデータを転送する

よろしく

+1

は、次のリンクhttp://www.dbforums.com/oracle/805663-pl-sql-how-spool-my-output-files.html –

+0

が重複する可能性を見てください例を見ることができます[テキストファイルからOracleのテーブルへのデータのロード](http://stackoverflow.com/questions/3750538/loading-data-from-a-text-file-to-a-table-in-oracle) –

+0

クライアント側またはサーバー側で記述しますか? SQL * plus – vijayaragavan

答えて

8

あなたは、このためにパッケージをUTL_FILE使用することができます..あなたはブロックの種類の下に試すことができます

-

declare 
p_file util_file.file_type; 
l_table <your_table_name>.ROWTYPE; 
l_delimited varchar2(1) := '|'; 
begin 
p_file:= utl_file.fopen('<file_path>','<file_name>','W'); 
for l_table in (select * from <your_table_name>) loop 
utl_file.putline(p_file,l_table.col1||l_delimited||l_table.col2||l_delimited||l_table.col3||l_delimited||l_table.col4||l_delimited <continue with column list .........> ||chr(10)); 
end loop;  
utl_file.fclose_all(); 
end; 
+0

からスプールできるサーバー側とクライアント側にUTL_FILEを使用します。これにより、すべての情報が表からファイルにダウンロードされますか?たとえば、このコードを10分ごとにどのように実行することができますか? – user1285928

+0

あなたは問題のこの条件を尋ねていません..しかしこれも可能です..あなたはこの仕事を実行するためにスケジュールを使用することができます.. –

+1

私はちょうどあなたが望むフォームでこれを拡張することができます開始を与えた.. :) –

3

pratikのガーグの答えは良いものです。
しかし、EXTERNAL TABLEの使用を検討することもできます。
基本的には、ファイルにマップされるテーブルです。したがって、テーブルに挿入されたすべての行は自動的にファイルに書き込まれます。
あなたがhere

関連する問題