我有一份报告,我需要每天运行@ 00:00并将表中的所有信息导出到具有特定名称的特定位置。
示例:
select * from my_table
where date between SYSTIMESTAMP -2 and SYSTIMESTAMP -1
并将其导出到文件date.xml。
这可能来自Oracle SQL Developer还是我需要其他工具?
答案 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。