2013-05-09 20 views
5

sqlplus'ın hangi ifadeyi çalıştırdığını yazdırmanın bir yolu var mı? Bash komut dosyasında çalıştırdığım bazı .sql dosyalarım var. Sqlplus koştu hangi deyim dosyasını okuduğum zaman bilmem gerek.sqlplus print running bildirimi

Örnek: günlüğünü kontrol zaman

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

Ben bu olsun: bilgilendirici değil

Table created. 

Elapsed: 00:00:00.02 

Table created. 

Elapsed: 00:00:00.01 

Bu test.sql dosyası olduğunu varsayalım.

Table foo created. 

Elapsed: 00:00:00.02 

Table bar created. 

Elapsed: 00:00:00.01 

Hatta böyle: Bir Böyle çıktısını alabilirsiniz yolu var mı ben her ifade önce İSTEMİ kullanabilirsiniz biliyorum

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 

ama ben büyük sql komut dosyaları var ve onu olurdu Her deyimden önce PROMPT yazmayı yorucu.

DÜZENLEME:

Allan'ın çözümü her zaman, kaçınmalısınız (yani " üzerinde seti yankıyı" kullanarak) çalışması için aşağıdaki:

1) -S seçeneği kullanmayın sqlplus ile, bu komutların yankılanmasının görüntülenmesini bastırır.

2) böyle sqlplus için değil "kedi" Senaryonu yapın:

cat test.sql | sqlplus scott/[email protected] 

cevap

12

aradığınız komutu verilir her bir ifadeyi tekrar edecektir SET ECHO ON vardır.

+1

Teşekkürler. Bu iki şeyden kaçınarak çalıştı. Güncellenmiş sorumu görün. – Younes

+0

Bu, '@ script.sql' çalıştırılırken çalışmaz. Bu durumda, komut içindeki komutlar yankılanır, ancak orijinal komut ('@ script.sql') yankılanmaz. İzlenebilirlik açısından, oturum açmak için kullanıcı komutlarına gerçekten ihtiyacım var. –

+0

(diğer tüm durumlarda olsa, "set echo on" harika çalışıyor) –

0

Nesnelerin tam oluşturma süresini bilmeniz gerekiyorsa, CREATE sütununa DBA_OBJECTS veya ALL_OBJECTS sorgulayabilirsiniz.