sqlplus打印运行语句

时间:2013-05-09 16:03:11

标签: oracle sqlplus

有没有办法让sqlplus可以打印它执行的语句。 我的意思是我有一些我在bash脚本中运行的.sql文件。我需要知道何时读取日志文件sqlplus运行的语句。

实施例: 假设我有这个test.sql文件:

set timing on
create table foo (a varchar2(10));
create table bar (b varchar2(10));
exit

当我查看日志时,我得到了这个:

Table created.

Elapsed: 00:00:00.02

Table created.

Elapsed: 00:00:00.01

哪些内容不丰富。有没有办法让我得到这样的输出:

Table foo created.

Elapsed: 00:00:00.02

Table bar created.

Elapsed: 00:00:00.01

或者甚至喜欢这样:

create table foo (a varchar2(10));

Table created.

Elapsed: 00:00:00.02

create table bar (b varchar2(10));

Table created.

Elapsed: 00:00:00.01

我知道我可以在每个语句之前使用PROMPT,但是我有大的sql脚本,在每个语句之前编写PROMPT会很繁琐。

修改

对于Allan始终有效的解决方案(即使用“设置回显”),您应该避免以下情况:

1)不要在sqlplus中使用-S选项,因为这会抑制命令回显的显示。

2)不要像以下那样将脚本“捕捉”到sqlplus:

cat test.sql | sqlplus scott/tiger@orcl

2 个答案:

答案 0 :(得分:15)

您要查找的命令是SET ECHO ON,它将重复发出的每个语句。

答案 1 :(得分:-1)

如果您需要知道对象的确切创建时间,可以查询CREATED列的DBA_OBJECTS或ALL_OBJECTS。