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

问题描述:

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

问候

+1

看一看下面的链接http://www.dbforums.com/oracle/805663-pl-sql-how-spool-my-output-files.html – 2012-03-24 09:58:42

+0

可能重复[将数据从文本文件加载到oracle中的表](http://stackoverflow.com/questions/3750538/loading-data-from-a-text-file-to-a-table-in-oracle) – 2012-03-24 19:50:41

+0

你想写在客户端还是服务器端?使用UTL_FILE作为服务器端和客户端,你可以从sql *加上后台打印 – vijayaragavan 2012-03-25 09:46:21

您可以使用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

这将把表中的所有信息下载到文件中?我如何每10分钟运行一次该代码? – user1285928 2012-03-24 10:11:23

+0

你有没有问这个问题..但这也是可能的..你可以使用时间表来运行这项工作.. – 2012-03-24 10:12:57

+1

我刚给你一个开始,你可以扩展这个在你想要的形式.. :) – 2012-03-24 10:13:31

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