我通过SQL Developer与Oracle数据库建立了连接,我想编写一个查询,该查询返回每月的数据集,然后将该数据提取到定界的文本文件中。我知道该怎么做就好,我想知道是否有一种方法可以编写脚本来运行查询并逐年提取一年的数据。这样,我将启动脚本,每当脚本完成时,我将拥有12个文本文件,每个月一个。
我可以手动完成操作,但是其中包含大量数据,我希望它可以在一夜之间运行。这样做的原因是,如果我们不尝试一次导入所有数据,将使用数据的应用程序将运行得更快。我什至不知道是否有可能,但是如果可以的话,有人可以指出我正确的方向吗?
提前致谢。
首先编写您的参数化脚本:
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
不要忘记设置选项以使生成的脚本可运行(例如,设置验证关闭,设置反馈关闭等)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句