2010-02-19 16 views
7

Desidero eseguire 200+ query selezionate e aggiungere i risultati a un file. Tutte le query sono le stesse l'unica differenza nella variabile data-ora. Non ho i privilegi per creare una routine, ecco perché ho dovuto creare tutte le query. Non ho i privilegi per creare una vista o un'altra tabella in cui archiviare i risultati. Non ho accesso a PL/SQL.Oracle 10g - Scrive i risultati delle query nel file

Ora ho bisogno di creare un rapporto con i risultati di ognuna di queste query (tutti i risultati sono numeri interi) ma non riesco a trovare un'altra soluzione, ma per eseguire uno per uno e copiare i risultati uno per uno .

Qualcuno di voi cervelli meravigliosi può darmi una mano su questo? È un po 'urgente.

risposta

4

1 - Mettete le vostre domande in un file di testo in questo modo:

set pagesize 0; 

select some_field 
from some_table; 

select another_field 
from another_table; 
/

2 - Salvalo da qualche parte (facciamo un CG: \ my_file.sql)

3 - Esegui questo al prompt dei comandi:

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

4 - Guarda dentro "output.txt"

+0

Doveva ancora "disattivare l'eco", anche se, vero? Altrimenti, la stringa della query non dovrebbe essere nell'output? – FrustratedWithFormsDesigner

+0

Eccellente Giuseppe. Proveremo anche questo. Grazie!! – Daniel

+0

Sebbene la query non sia nell'output, il nome della colonna è. C'è un modo per farci un giro? – Daniel

2

È possibile eseguire lo spooling dell'output su un file.

Vedere il comando spool (URL - Guida utente di Oracle 10.2).

anche:

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

e quello che sembra essere alcune punte di layout:

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

+0

Già provato e non ha funzionato abbastanza bene. Memorizza la stringa di query e anche, è una specie di interruzioni se eseguo 10 query contemporaneamente. – Daniel

+0

prova 'imposta echo off;' prima di eseguire la query. Ciò impedisce la visualizzazione della stringa di query. Ovviamente, di "echo" era attivo all'inizio della sceneggiatura, assicurati di riaccenderlo alla fine. Lascia sempre le cose nello stato in cui le hai trovate;) – FrustratedWithFormsDesigner

+0

Proveremo quello. – Daniel

0

Se si ha accesso a sqlplus, è possibile eseguire blocchi anonimi PL/SQL.

DECLARE 
v_cnt number; 
BEGIN 
select ... into v_cnt ...; 
dbms_output.put_line(v_cnt); 
END; 
. 
spool out.log 
/
spool off 
Problemi correlati