[英]Automatically extracting data - Oracle SQL Developer
我通过SQL Developer连接到Oracle数据库,我想编写一个查询,该查询返回每月的数据集,然后将该数据提取到定界的文本文件中。 我知道该怎么做就好,我想知道是否有一种方法可以编写脚本来运行查询并逐年提取一年的数据。 这样,我将启动脚本,每当脚本完成时,我将拥有12个文本文件,每个月一个。
我可以手动进行操作,但是其中包含大量数据,我希望它可以在一夜之间运行。 这样做的原因是,如果我们不尝试一次导入所有数据,将使用数据的应用程序将运行得更快。 我什至不知道是否可能,但是如果可以,有人可以向我指出正确的方向吗?
提前致谢。
学习SQL * Plus,这是一个管理Oracle数据库的功能非常强大的工具,如果您开始搜索如何将表中的数据提取到* .cvs文件中,您将立即发现例如此问题 。
如果您给我一个脚本来创建表格并填写表格,我将向您展示如何从表格中提取数据的示例。
首先编写您的参数化脚本:
define the_year=&1
define the_mon=&2
set lines etc
select * from the_table
where trunc(the_date , 'MM' ) = to_date ( '&the_year&the_mon', 'YYYYMM' )
spool extract_&the_year&the_mon.csv
/
spool off
然后是包装脚本:
@the_script 2014 01
@the_script 2014 02
.
.
.
@the_script 2014 12
您可以变得很聪明,并生成包装器:
sppol the_wrapper.sql
select '@the_script ' || to_char ( ADD_MONTHS ( trunc(sysdate,'YYYY' ), rn-1 ), 'YYYY MM' )
from ( select rownum rn from dual connect by level < 13 );
spool off
不要忘记设置选项以使生成的脚本可运行(例如,设置验证关闭,设置反馈关闭等)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.