2010-02-19 12 views
7

फ़ाइल करने के लिए क्वेरी परिणाम लिखें I 200+ चुनिंदा प्रश्नों को चलाने और परिणामों को एक फ़ाइल में जोड़ना चाहते हैं। सभी प्रश्न दिनांक-समय चर में एकमात्र अंतर हैं। मेरे पास दिनचर्या बनाने के लिए विशेषाधिकार नहीं हैं इसलिए मुझे सभी प्रश्नों को बनाना पड़ा। मेरे पास परिणामों को संग्रहीत करने के लिए दृश्य या अन्य तालिका बनाने के लिए विशेषाधिकार नहीं हैं। मेरे पास पीएल/एसक्यूएल तक पहुंच नहीं है।ओरेकल 10 जी -

अब मुझे इन प्रश्नों में से प्रत्येक के परिणामों के साथ एक रिपोर्ट बनाने की आवश्यकता है (सभी परिणाम पूर्णांक संख्याएं हैं) लेकिन मुझे एक और समाधान नहीं मिल रहा है, लेकिन एक-एक करके चलाने के लिए और परिणामों को एक-एक करके कॉपी करें ।

आप में से कोई भी अद्भुत दिमाग मुझे इस पर हाथ दे सकता है? यह बहुत जरूरी है।

उत्तर

4

1 - तो की तरह एक पाठ फ़ाइल में आपके प्रश्नों रखो:

set pagesize 0; 

select some_field 
from some_table; 

select another_field 
from another_table; 
/

2 - इसे कहीं सेव करें (चलो sa वाईसी: \ my_file.sql)

3 - कमांड प्रॉम्प्ट पर इस चलाएँ:

c:\>sqlplus -s username/[email protected] <tmp.sql> output.txt 

4 - अंदर देखो "output.txt"

+0

उसे अभी भी 'गूंजना बंद करना होगा;' हालांकि, वह नहीं करेगा? अन्यथा, क्वेरी स्ट्रिंग आउटपुट में नहीं होगी? – FrustratedWithFormsDesigner

+0

उत्कृष्ट जोसेफ। यह भी कोशिश करेंगे। धन्यवाद!! – Daniel

+0

हालांकि क्वेरी आउटपुट में नहीं है, कॉलम नाम है। क्या इसकी सवारी करने का कोई तरीका है ?? – Daniel

2

आप अपने आउटपुट को फ़ाइल में स्पूल कर सकते हैं।

spool (यूआरएल - ओरेकल 10.2 उपयोगकर्ता की मार्गदर्शिका) कमांड देखें।

इसके अलावा

:

http://www.praetoriate.com/t_garmany_easysql_the_spool_command.htm

और क्या कुछ लेआउट सुझाव दिए गए प्रतीत होता है:

http://www.oracle.com/technology/oramag/code/tips2004/020904.html

+0

पहले से ही कोशिश की गई है और यह काफी अच्छी तरह से काम नहीं कर रहा है। यह क्वेरी स्ट्रिंग को संग्रहीत करता है और साथ ही, अगर मैं एक ही समय में 10 प्रश्न चलाता हूं तो यह ब्रेक होता है। – Daniel

+0

क्वेरी चलाने से पहले 'echo बंद करें' प्रयास करें। यह क्वेरी स्ट्रिंग को प्रदर्शित होने से रोकता है। बेशक, स्क्रिप्ट की शुरुआत में 'इको' चालू था, इसे अंत में वापस चालू करना सुनिश्चित करें। हमेशा उन राज्यों में चीजें छोड़ दें जिन्हें आपने पाया;) – FrustratedWithFormsDesigner

+0

इसे आजमाएं। – Daniel

0

आप sqlplus की पहुंच है, तो आप चला सकते हैं अज्ञात पीएल/एसक्यूएल ब्लॉक।

DECLARE 
v_cnt number; 
BEGIN 
select ... into v_cnt ...; 
dbms_output.put_line(v_cnt); 
END; 
. 
spool out.log 
/
spool off 
संबंधित मुद्दे