首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动提取数据- Oracle SQL Developer

自动提取数据- Oracle SQL Developer
EN

Stack Overflow用户
提问于 2014-08-07 13:44:47
回答 2查看 1.7K关注 0票数 2

我通过SQL连接到Oracle数据库,我希望编写一个查询,该查询返回一个月数据集,然后将该数据提取到一个分隔的文本文件中。我知道如何做到这一点,我想知道的是,是否有一种方法可以编写一个脚本来运行查询并逐月提取一年的数据。这样,我就会启动脚本,每当脚本全部完成时,我就会有12个文本文件,每个月一个。

我可以手动完成,但这是大量的数据,我想让它一夜之间运行。这样做的原因是,如果不尝试一次导入所有这些数据,我们将使用的应用程序将运行得更快。我甚至不知道这是否可能,但如果是,有人能指出我的正确方向吗?

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-07 18:37:05

首先编写参数化脚本:

代码语言:javascript
复制
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

然后是包装脚本:

代码语言:javascript
复制
@the_script 2014 01
@the_script 2014 02
.
.
.
@the_script 2014 12

您可以变得聪明(Ish)并生成包装器:

代码语言:javascript
复制
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

不要忘记使生成的脚本可运行的set选项(例如,set验证关闭、set反馈关闭等)。

票数 2
EN

Stack Overflow用户

发布于 2014-08-07 14:42:06

学习SQL*Plus,这是管理Oracle的一个非常强大的工具,如果您开始搜索如何从表中提取数据到*.cvs文件,您就可以立即找到this question

如果您给我一个脚本来创建一个表并填充它,我将向您演示如何从您的表中提取数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25184216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档