Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle sqlplus和spool选项_Oracle_Sqlplus_Spool - Fatal编程技术网

Oracle sqlplus和spool选项

Oracle sqlplus和spool选项,oracle,sqlplus,spool,Oracle,Sqlplus,Spool,我有一个运行SQL*Plus命令的批处理脚本,我正在将输出假脱机到CSV文件。所有输出只有一列“计数”。有没有办法在结果中添加文本 "The_current_valueOf Query1" "Count1" "The_current_valueOf Query2" "Count2" 如有任何帮助/建议,将不胜感激 set colsep, 将页面大小设置为0 打开阀芯 顶起 设置新页无 假脱机D:\TRHMIBS\TRH\TRHStats.csv 从host.ufm中选择count(*),其中插

我有一个运行SQL*Plus命令的批处理脚本,我正在将输出假脱机到CSV文件。所有输出只有一列“计数”。有没有办法在结果中添加文本

"The_current_valueOf Query1" "Count1"
"The_current_valueOf Query2" "Count2"
如有任何帮助/建议,将不胜感激

set colsep,
将页面大小设置为0
打开阀芯
顶起
设置新页无
假脱机D:\TRHMIBS\TRH\TRHStats.csv
从host.ufm中选择count(*),其中插入trunc(sysdate)和sysdate之间的时间
/
假脱机D:\TRHMIBS\TRH\TRHStats.csv追加
从host.amendment中选择count(*),其中插入trunc(sysdate)和sysdate之间的\u时间,消息来源='AUDIT'
/
假脱机D:\TRHMIBS\TRH\TRHStats.csv追加
从host.ufm_amendment中选择count(*),其中trunc(sysdate)和sysdate之间的insert_time和msg_source='DAS'和ext_令牌为空
/
关闭;
出口

您可以选择消息作为硬编码文本。例如:

spool D:\TRHMIBS\TRH\TRHStats.csv
SELECT 'The_current_valueOf Query1:', COUNT(*)
FROM   host.ufm
WHERE  insert_time BETWEEN TRUNC(sysdate) AND sysdate
/

这与假脱机无关。您的第二个和第三个
spool
命令是多余的-所有内容都将假脱机到打开的文件,直到您将其关闭。但这是一个次要问题

可以使用列表达式(可以是字符串文字)向输出中添加另一列。因此,您可以将第一个查询更改为:

select 'The_current_valueOf Query1', count(*)
from host.ufm
where insert_time between trunc(sysdate) and sysdate
然后对其他两个查询执行相同的操作

由于您希望将其作为CSV,因此可以将
colsep
单独保留,并在其中嵌入一个带有逗号的列,这可以通过连接实现:

select 'The_current_valueOf Query1,' || count(*)
from host.ufm
where insert_time between trunc(sysdate) and sysdate
您可以将它们合并在一起,而不是运行三个单独的查询;不节省处理时间,但意味着所有输出都集中在一起

select 'The_current_valueOf Query1,' || count(*)
from host.ufm
where insert_time between trunc(sysdate) and sysdate
union all
select 'The_current_valueOf Query1,' || count(*)
from host.amendment
where insert_time between trunc(sysdate) and sysdate
union all
...