我有一个批处理文件,它在sqlplus中运行SQL脚本并将输出发送到日志文件:
sqlplus user / pw< RowCount.sql> RowCount.log
我的日志文件包含:
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
SQL> SQL>
COUNT(*)
----------
0
SQL>
COUNT(*)
----------
0
等。但它有几千行输出,因此很难确定哪些结果属于哪种陈述。
我想在输出中添加一些格式,以便我可以看出发生了什么。要么执行语句的回显,要么在脚本中手动插入一些“echo”语句就可以了。理想情况下,它看起来像这样:
SQL> select(*) from TableA;
COUNT(*)
----------
0
SQL> select(*) from TableB;
COUNT(*)
----------
0
答案 0 :(得分:41)
提示命令会将文本回显到输出:
prompt A useful comment.
select(*) from TableA;
将显示为:
SQL> A useful comment.
SQL>
COUNT(*)
----------
0
答案 1 :(得分:22)
您可以在脚本开头使用SET ECHO ON
来实现此目的,但是,您必须使用@
而不是<
来指定脚本(还必须添加{{1}最后):
<强> TEST.SQL 强>
EXIT
<强>终端强>
SET ECHO ON
SELECT COUNT(1) FROM dual;
SELECT COUNT(1) FROM (SELECT 1 FROM dual UNION SELECT 2 FROM dual);
EXIT
<强> test.log中强>
SQL> SQL> SELECT COUNT(1) FROM dual; COUNT(1) ---------- 1 SQL> SQL> SELECT COUNT(1) FROM (SELECT 1 FROM dual UNION SELECT 2 FROM dual); COUNT(1) ---------- 2 SQL> SQL> EXIT
答案 2 :(得分:1)
您可以更改列的名称,因此您可以使用“COUNT(*)”代替有意义的内容。您必须更新“RowCount.sql”脚本。
例如:
SQL> select count(*) as RecordCountFromTableOne from TableOne;
将显示为:
RecordCountFromTableOne
-----------------------
0
如果您想在标题中留出空格,则需要用双引号将其括起来
SQL> select count(*) as "Record Count From Table One" from TableOne;
将显示为:
Record Count From Table One
---------------------------
0