sqlplusが実行したステートメントを印刷する方法はありますか。 私はbashスクリプトで実行するいくつかの.sqlファイルを持っています。 sqlplusが実行したログ・ファイルをいつ読むかを知る必要があります。sqlplus実行ステートメントの実行
例:有益ではありません
Table created.
Elapsed: 00:00:00.02
Table created.
Elapsed: 00:00:00.01
:私はこれを取得ログをチェックすると
set timing on
create table foo (a varchar2(10));
create table bar (b varchar2(10));
exit
: は、私は、このtest.sql内のファイルを持っていると言います。
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を書くのは面倒です。
EDIT:
はアランのソリューションは常に、あなたが避けるべきである(すなわち、 "にセットエコー" を使用して)仕事をするために、次の
1)-Sオプションを使用しないでくださいsqlplusを使用すると、コマンドのエコー表示が抑制されるためです。
2)は次のようにSQLPLUSしない「猫」スクリプトを実行します。
cat test.sql | sqlplus scott/[email protected]
ありがとうございました。これは2つのことを避けることによって機能しました。更新された質問を参照してください。 – Younes
これは '@ script.sql'を実行しているときには動作しません。その場合、スクリプト内のコマンドはエコーされますが、元のコマンド( '@ script.sql')はエコーされません。トレーサビリティの目的のために、私は本当にログに記録されるユーザコマンドが必要です。 –
(他のすべての場合、 'set echo on'はうまくいく) –