将数据从Oracle表传输到文本文件

时间:2012-03-24 09:41:32

标签: sql oracle plsql oracle11g

我感兴趣的是PL / SQL块可以将Oracle表的内容传输到硬盘上的文本文件中。我需要一个PL / SQL块,它可以下载一个表的内容,用于将日志数据存储到文本文件中。

此致

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:4)

pratik garg的答案很好。
但是,您可能还想考虑使用EXTERNAL TABLE 基本上,它是映射到文件的表。因此插入表中的每一行都会自动写入文件 你可以看到一个例子here