Newsgroup: it.comp.software.database
Titolo: Eseguire una procedura all'interno di una EXEC

Ciao a tutti!
Ho due procedure X1 e X2.
Nella procedura X1 lancio la procedura X2
Nella procedura X1 ho delle istruzioni che mi invalidano la procedura
X2.
Percio' ho la necessita' di compilare la procedura X2 prima di
eseguirla.
Non posso dunque includere direttamente il comando 
X2;
all'interno della procedura X1 altrimenti la X2 verebbe lockata.
Ho pensato dunque di eseguire la compilazione e la procedura X2
tramite una EXECUTE IMMEDIATE pero' ho qualche difficolta'.
EXECUTE IMMEDIATE 'ALTER PROCEDURE X2 COMPILE';
Funziona
Invece per l'esecuzione della X2 ho qualche problemino.
Ho provato con 
EXECUTE IMMEDIATE 'EXEC X2';
EXECUTE IMMEDIATE 'X2';
EXECUTE IMMEDIATE 'EXEC X2;';
EXECUTE IMMEDIATE 'X2;';
Ma non funzionano.
Qualcuno di voi ha idea se si possa fare?...oppure avete altre idee da
suggerirmi?
Ciao e Grazie Alex

Ops....
Prima non vi ho detto che il database e' ORACLE 8
Ciao e Grazie
Alex

 suggerirmi?
Io sono un pochino duro di comprendonio... non ho capito quello che 
hai detto. Se riposti casomai con dei nomi le procedure con il 
flusso delle chiamate... e pure il motivo per il quale ste procedure
si invalidano (un accenno di pseudo codice, mica ci saranno segreti
industriali).
Questo anche perchè ci possono essere strade migliori a quella che
hai intrapreso tu... 
/G

 hai intrapreso tu... 
Ciao e grazie per l'interesse.
Non ho problemi a fornirti anche tutto il codice ma si tratta di parecchie
righe di codice ( in tutto si parla di qualche milione :-) )
La procedura serve a caricare un DWH di secondo livello partendo da un DWH
di primo livello e sucessivamente a caricare il tutto in svariati datamart.
La procedura che mi da' il problema e' questa :
CREATE OR REPLACE PROCEDURE Proc_Caricamento_Dwh_Mens
AS
BEGIN
.....
ALTRO CODICE
.....
W2_Load_Iniziale;
Agg_Update_1;
EXECUTE IMMEDIATE 'ALTER PROCEDURE AGG_UPDATE_3 COMPILE';
EXECUTE IMMEDIATE 'exec Agg_Update_3'; -- non funziona --
Agg_Update_6;
Agg_Update_7;
.....
ALTRO CODICE
.....
END Proc_Caricamento_Dwh_Mens;
Il problema si verifica con la procedura Agg_Update_3.
Non sono ancora riuscito a capire il motivo del perche' si invalidi ma
appena si blocca la procedura "Proc_Caricamento_Dwh_Mens", mi basta
compilare la "Agg_Update_3" e rilanciare la "Proc_Caricamento_Dwh_Mens" da
quel punto.
Io ho pensato di inserire una istruzione di compilazione all'interno della
procedura "Proc_Caricamento_Dwh_Mens" (come vedi sopra) ma non posso
eseguire  la procedura Agg_Update_3 come le altre  ( ess Agg_Update_6;)
altrimenti mi verrebbe lockata e non sarebbe piu' possibile compilarla.
Il problema nasce dal fatto che non riesco a lanciare la procedura
Agg_Update_3 da una EXECUTE IMMEDIATE.
Spero di essere stato piu' chiaro.
Se hai altri dubbi dimmelo.
Ciao e Grazie Alex

 Spero di essere stato piu' chiaro.
molto meglio...
/G

 end;
Ti ringrazio tantissimo!
Non sai quante notti a Torino mi hai risparmiato!
Avevo provato a guardare sulla documentazione ma non avevo trovato nulla.
(Probabilente avevo anche cercato male...ma la fretta e' cattiva
consigliera)
Ciao e Grazie
Spero di poterti tornare utile anche io un giorno!
Alex