【问题标题】:Transfer data from Oracle table to text file将数据从 Oracle 表传输到文本文件
【发布时间】:2012-03-24 09:41:31
【问题描述】:

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

问候

【问题讨论】:

标签: sql oracle plsql oracle11g


【解决方案1】:

你可以为此使用 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;

【讨论】:

  • 这会将表格中的所有信息下载到文件中?例如,如何每 10 分钟运行一次此代码?
  • 你没有问过这个条件..但这也是可能的..你可以使用调度来运行这个工作..
  • 我只是给了你一个开始,你可以以你想要的形式扩展它.. :)
  • 您可以参考网站dba-oracle.com/tips_oracle_dbms_job.htm进行调度...
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 2017-05-25
    • 1970-01-01
    相关资源
    最近更新 更多