小编典典

如何在SQLPLUS中执行SQL脚本期间回显文本

sql

我有一个批处理文件,该文件在sqlplus中运行一个SQL脚本,并将输出发送到日志文件:

sqlplus用户/密码 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

阅读 216

收藏
2021-04-15

共1个答案

小编典典

您可以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

终端

sqlplus hr/oracle@orcl @/tmp/test.sql > /tmp/test.log

测试日志

SQL> 
SQL> SELECT COUNT(1)从对偶;

  COUNT(1)
----------
     1个

SQL> 
SQL> SELECT COUNT(1)FROM(SELECT 1 FROM dual UNION SELECT 2 FROM dual);

  COUNT(1)
----------
     2个

SQL> 
SQL>退出
2021-04-15