Czy istnieje sposób, w którym sqlplus może wydrukować instrukcję, którą wykonał. Mam na myśli niektóre pliki .sql, które uruchamiam w skrypcie bash. Muszę wiedzieć, kiedy czytam plik dziennika, którego instrukcji SQL uruchomił.sqlplus print running statement
Przykład: Say mam ten plik test.sql:
set timing on
create table foo (a varchar2(10));
create table bar (b varchar2(10));
exit
Kiedy sprawdzić dziennik uzyskać to:
Table created.
Elapsed: 00:00:00.02
Table created.
Elapsed: 00:00:00.01
który nie został poinformowany. Czy istnieje sposób, gdzie mogę uzyskać wyjście tak:
Table foo created.
Elapsed: 00:00:00.02
Table bar created.
Elapsed: 00:00:00.01
Albo jeszcze tak:
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
wiem, że mogę używać Pytaj przed każdym stwierdzeniem, ale mam duże skryptów SQL i byłoby żmudne napisać PROMPT przed każdym stwierdzeniem.
EDIT:
do sporządzania roztworu do Allana zawsze działa (czyli używając "zestaw echo na"), należy unikać następujących czynności:
1) Nie używaj opcji -S z sqlplus, ponieważ spowoduje to zablokowanie wyświetlania echa poleceń.
2) nie „Cat” skrypt do sqlplus tak:
cat test.sql | sqlplus scott/[email protected]
Dzięki. To działało przez unikanie dwóch rzeczy. Zobacz moje zaktualizowane pytanie. – Younes
To nie działa podczas uruchamiania '@ script.sql'. W takim przypadku komendy w skrypcie otrzymują echo, ale oryginalne polecenie ('@ script.sql') nie zostanie odtworzone. Do celów związanych ze śledzeniem, naprawdę potrzebuję rejestrować polecenia użytkownika. –
(we wszystkich innych przypadkach jednak funkcja "set echo on" działa świetnie) –