安排Oracle Reports并导出到XML

时间:2014-06-23 06:43:49

标签: sql xml oracle

我有一份报告,我需要每天运行@ 00:00并将表中的所有信息导出到具有特定名称的特定位置。

示例:

    select * from my_table 
where date between  SYSTIMESTAMP -2  and SYSTIMESTAMP -1 

并将其导出到文件date.xml。

这可能来自Oracle SQL Developer还是我需要其他工具?

1 个答案:

答案 0 :(得分:1)

没有Oracle版本所以我假设10或11。

要安排您的流程,您只需创建一份工作并安排工作。作业必须运行您的脚本(可以是函数或存储过程)。 这里的文档: http://docs.oracle.com/cd/B28359_01/server.111/b28310/scheduse.htm#i1033533

要写入文件,可以在SQL中使用spool命令。您可以在此处找到文档:http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12043.htm

使用起来非常简单。

spool @path/nomefile
la tua query
spool off

显然,运行脚本的机器必须在您要写入文件的机器上具有写权限(我说这是因为我经常忘记检查)。

要创建一个XML,它稍微复杂一些,需要稍微解释一下,但是Oracle社区中有一篇很好的帖子解释了它,并提供了一个简单实用的例子:https://community.oracle.com/thread/714758?start=0&tstart=0

如果您不想在Oracle中使用作业,可以使用连接命令,假脱机命令和查询编写.Sql文件,并在服务器计算机上安排它,并将其设置为简单命令sqlplus

----------意大利语版本---------------

Non hai indicato la versione di Oracle che stai usando。

Per schedulare il processo devi semplicemente creare un job e schedularlo。 Il job esegue il tuo script(chepuòesrereuna function o una intera storage procedure) Qui trovi la documentazione: http://docs.oracle.com/cd/B28359_01/server.111/b28310/scheduse.htm#i1033533

Per scrivere su un file puoi usare il comando spool di sql Qui trovi la documentazione: http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12043.htm

E'molto banale da usare。

spool @path/nomefile 
la tua query 
spool off

Ovviamente la macchina da cui esegui lo script deve avere i permessi di scrittura sulla macchina su cui andrai a scrivere il file(lodicoperchéiospesso mi dimentico di controllare ^ __ ^)

Per creare un xml lacosaèleggermentepiùcomplessaed un poco lunga da spiegarequiperòc'èunbel post sulla community di Oracle che lo spiega e fa un esempio semplice e funzionale: https://community.oracle.com/thread/714758?start=0&tstart=0

Se non vuoi usare un job dentro Oracle puoi scrivere un file .sql con i comnadi di connessione,lo spool e la tua query e schedularlo dalla macchina server su cui vuoi che parta come un semplice comando sqlplus。 Se ti servono dettagli chiedi pure。 ^ __ ^

Spero sia sufficiente。