Ho una domanda sullo spooling dei risultati del mio programma. Il mio esempio di script sql ha questo aspetto.Come creare un file di spool sql per script oracle
whenever sqlerror exit failure rollback
set heading off
set arraysize 1
set newpage 0
set pages 0
set feedback off
set echo off
set verify off
declare
ab varchar2(10) := 'Raj';
cd varchar2(10);
a number := 10;
c number;
d number;
begin
c := a+10;
select ab,c into cd,d from dual;
end;
SPOOL
select cd,d from dual;
SPOOL OFF
EXIT;
Lo script di cui sopra non funziona, ma voglio fare qualcosa di simile in cui nel blocco di fine cominciare calcoliamo alcuni valori e voglio per avvolgere questi risultati.
Grazie.
Cosa succede se c'è un cursore nel blocco e scorre all'interno del punto iniziale. Come 'loop c: = a + 10; selezionare c in: d da doppio; ciclo finale; fine; SPOOL selezionare: d da doppio; SPOOL OFF EXIT; ' Quindi, ora fornirà tutti i risultati oppure l'output finale memorizzato in: d. Come eseguire lo spool se c'è un loop. – user987900
È possibile utilizzare DBMS_OUTPUT all'interno del ciclo del cursore per emettere il valore ad ogni iterazione del cursore. Vedi modifica .. – Ollie
Ciao Ollie, ho ancora una domanda. Il codice sopra funziona bene quando corro da SQL * plus. Ma, ho uno script di shell che richiama questo script SQL e spool l'output in un file di testo. Ho registrato lo script della shell nelle app Oracle e quando invio una richiesta dalle app per l'esecuzione. Mostra normale e in esecuzione ma non viene mai completato. Do, devo apportare modifiche allo script sopra quando si richiama da uno script di shell. – user987900