ma tu vuoi controllare il risultato di una delle due select a prescindere se entrambe o nessuna o una delle due non restituisce alcun valore?Originariamente inviato da Elena78
scusa se sono tardama xchè due exception??
![]()
![]()
![]()
![]()
ma tu vuoi controllare il risultato di una delle due select a prescindere se entrambe o nessuna o una delle due non restituisce alcun valore?Originariamente inviato da Elena78
scusa se sono tardama xchè due exception??
![]()
![]()
![]()
![]()
Originariamente inviato da darkblOOd
ma tu vuoi controllare il risultato di una delle due select a prescindere se entrambe o nessuna o una delle due non restituisce alcun valore?
No dunque.
ho dei record in una tabella
Devo controllare che questi record esistano nella tabella di storico.
La prima select mi trova l'ultimo stato di quel record nello storico.
Se non trova niente è logico che non debba effettuare nemmeno la prima select, ma uscire direttamente dal loop.
Viceversa. Se c'è qualcosa nello storico passa alla seconda select, che recupera dei campi. e da li effettua dei controlli
con le condizioni IF.
Se alcune condizioni danno errore traccia l'output delle schede "ANOMALE"
Uff, che fatica
![]()
Abbattiamo il consumismo http://video.google.it/videoplay?do...91301&hl=it
ok, quindi soffermiamoci su questa parte di codice:Originariamente inviato da Elena78
codice:BEGIN SELECT MAX(ID_STORICO) as Max into num from Recall45_debug_storico where colonna5= rc.colonna5; SELECT record_type_new, record_status_new, call_result_new,col_esito_new INTO rc_type_storico,rc_status_storico,c_result_storico, es_storico FROM Recall45_debug_storico WHERE colonna5= rc.colonna5 and id_storico=num; EXCEPTION WHEN NO_DATA_FOUND THEN dbms_output.put_line(sqlerrm); IF rc.COL_ESITO = es_storico then /* verifica l esito applicativo, se congruente */ IF rc.record_type = rc_type_storico and rc.record_status= rc_status_storico and rc.call_result= c_result_storico then EXIT; END IF; ELSE DBMS_OUTPUT.PUT_LINE(err ||' ' || rc.COLONNA5 || ' L esito telefonico/applicativo della tabella RECALL_STORICO non coincide con l esito della scheda ON LINE (scheda non in Stale)'); END IF; END;
se la prima select non restituisce un valore allora deve scattare l'eccezione e uscire dal loop altrimenti effettua la seconda select e verifichi i risultati con gli if (che tu hai messo dentro la exception giusto? :master:
esatto.Originariamente inviato da darkblOOd
ok, quindi soffermiamoci su questa parte di codice:
se la prima select non restituisce un valore allora deve scattare l'eccezione e uscire dal loop altrimenti effettua la seconda select e verifichi i risultati con gli if (che tu hai messo dentro la exception giusto? :master:
L'ho messa dentro la exception perchè se la metto fuori quando esce dall'exception mi entra nelle condizioni.. invece di ricominciare il loop..![]()
![]()
Abbattiamo il consumismo http://video.google.it/videoplay?do...91301&hl=it
se vuoi che il loop finisca
BEGIN
FOR
SELECT
SELECT
IF
EXCEPTION
END
se il loop deve continuare
FOR
BEGIN
SELECT
SELECT
IF
EXCEPTION
END
END LOOP
ma allora perchè non controllare il valore di num dopo la select ed effettuare la seconda con i relativi if solo se il valore esiste?Originariamente inviato da Elena78
esatto.
L'ho messa dentro la exception perchè se la metto fuori quando esce dall'exception mi entra nelle condizioni.. invece di ricominciare il loop..![]()
![]()
altrimenti credo che si debbe riscrivere la sequenza della exception![]()
anche perchè adesso che ci penso la funzione max ti restituisce anche i valori null?(cioè farebbe scattare il NO_DATA_FOUND?)
Beh.. dovrebbe comunque rientrare nelle exception others... no??Originariamente inviato da darkblOOd
anche perchè adesso che ci penso la funzione max ti restituisce anche i valori null?(cioè farebbe scattare il NO_DATA_FOUND?)
Eppoi si.. ritorna null
Abbattiamo il consumismo http://video.google.it/videoplay?do...91301&hl=it
ma è già così---Originariamente inviato da darkblOOd
ma allora perchè non controllare il valore di num dopo la select ed effettuare la seconda con i relativi if solo se il valore esiste?
altrimenti credo che si debbe riscrivere la sequenza della exception![]()
o forse non ho capito cosa vuoi dire :master:
Abbattiamo il consumismo http://video.google.it/videoplay?do...91301&hl=it