获取sqlplus的结果并将其放入脚本.bat中的变量中

时间:2017-11-29 21:32:59

标签: oracle batch-file sqlplus

我不知道批处理结构,如果这个问题是三元组,请原谅我。 我有我的查询,我想用sqlplus命令将它们执行到脚本中。之后,当我的sqlplus命令给我一个结果时,我想将记录保存在变量中,最后一步是使用mailto命令创建一个邮件并将其发送给我的联系人。

我的脚本是:

ScriptFather.bat

@echo off
setlocal EnableDelayedExpansion
SET i=0
FOR /f  %%b IN ('C:\Users\samuele.nava\Desktop\idlock.bat') DO (set var!i!=%%b)
echo var0: !var0!
pause

ScriptSon.bat

sqlplus user/pwd@host:port/sid @C:\...\Query.sql

query.sql的

select id_richiesta,id_ric_tipo,id_lock,ts_ins,ts_ultimo_aggiornamento,codice_op_don,codice_op_rec,id_richiesta_stati,data_cut_over_richiesta,data_cut_over_effettiva from richieste where id_lock is not null and ts_ultimo_aggiornamento=(sysdate) order by ts_ultimo_aggiornamento desc;

对不起,如果这些问题很常见,但我不知道如何解决这个问题。

注意并摇滚

1 个答案:

答案 0 :(得分:0)

我认为市长的挑战是格式化sqlplus输出。请查看此文档Formatting SQL*Plus Reports

一旦你这样做,我建议将结果假脱机并发送给它,例如使用SendSMTP,你可以从http://www.virtualobjectives.com.au/utilitiesprogs/sendsmtp.htm下载

sqlplus -s user/pwd@host:port/sid @Query.sql > %TEMP%\Query_output.txt

SendSMTP.exe /HOST mailhost /FROM "Samuele@domain.net" /TO "Samuele@domain.net" /SUBJECT "Notification from Database" /BODYFILE %TEMP%\Query_output.txt

请注意禁止sqlplus横幅的-s开关。