2013-05-09 5 views
5

क्या कोई ऐसा तरीका है जहां sqlplus इसे किस कथन को निष्पादित कर सकता है प्रिंट कर सकता है। मेरा मतलब है कि मेरे पास कुछ .sql फ़ाइलें हैं जिन्हें मैं एक बैश स्क्रिप्ट में चलाता हूं। मुझे पता होना चाहिए कि जब मैं लॉग फ़ाइल पढ़ता हूं तो कौन सा कथन sqlplus भाग गया था।sqlplus प्रिंट चलने वाला कथन

उदाहरण:

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 

कौन सा जानकारीपूर्ण नहीं है मैं इस 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 लिखने के लिए थकाऊ।

संपादित करें:

के लिए एलन के समाधान हमेशा (यानी " पर सेट गूंज" का प्रयोग करके) काम करने के लिए, आप से बचना चाहिए निम्नलिखित:

1) -S विकल्प का उपयोग न करें sqlplus के साथ क्योंकि यह आदेशों को प्रतिबिंबित करने के प्रदर्शन को दबा देगा।

2) इस तरह sqlplus के लिए नहीं "बिल्ली" अपनी स्क्रिप्ट कार्य करें:

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

उत्तर

12

आदेश आप देख रहे हैं SET ECHO ON, जो प्रत्येक बयान है कि जारी किया जाता है दोहराने नहीं है।

+1

धन्यवाद। यह दो चीजों से परहेज करके काम किया। मेरा अद्यतन प्रश्न देखें। – Younes

+0

यह '@ script.sql' चलाते समय काम नहीं करता है। उस स्थिति में, स्क्रिप्ट के भीतर आदेश प्रतिबिंबित हो जाते हैं, लेकिन मूल आदेश ('@ script.sql') प्रतिबिंबित नहीं होता है। Tracability उद्देश्यों के लिए, मुझे वास्तव में लॉग इन करने के लिए उपयोगकर्ता कमांड की आवश्यकता है। –

+0

(हालांकि अन्य सभी मामलों में, 'echo पर echo सेट करें' महान काम करता है) –

0

यदि आपको ऑब्जेक्ट्स के लिए सटीक निर्माण समय पता होना चाहिए तो आप CREATED कॉलम के लिए DBA_OBJECTS या ALL_OBJECTS से पूछ सकते हैं।

संबंधित मुद्दे