gle*_*roo 26 sql sqlplus oracle11g
我有一个批处理文件,它在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
Run Code Online (Sandbox Code Playgroud)
等等,但它有几千行输出,因此很难确定哪些结果属于哪个陈述.
我想在输出中添加一些格式,以便我可以看出发生了什么.要么执行语句的回显,要么在脚本中手动插入一些"echo"语句就可以了.理想情况下,它看起来像这样:
SQL> select(*) from TableA;
COUNT(*)
----------
0
SQL> select(*) from TableB;
COUNT(*)
----------
0
Run Code Online (Sandbox Code Playgroud)
gle*_*roo 44
的提示命令将回声文本到输出:
prompt A useful comment.
select(*) from TableA;
Run Code Online (Sandbox Code Playgroud)
将显示为:
SQL> A useful comment.
SQL>
COUNT(*)
----------
0
Run Code Online (Sandbox Code Playgroud)
Prz*_*lej 24
您可以SET ECHO ON
在脚本的开头使用它来实现,但是,您必须使用@
而不是<
(也必须EXIT
在末尾添加)指定您的脚本:
TEST.SQL
SET ECHO ON
SELECT COUNT(1) FROM dual;
SELECT COUNT(1) FROM (SELECT 1 FROM dual UNION SELECT 2 FROM dual);
EXIT
Run Code Online (Sandbox Code Playgroud)
终奌站
sqlplus hr/oracle@orcl @/tmp/test.sql > /tmp/test.log
Run Code Online (Sandbox Code Playgroud)
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