Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Elena78
    Registrato dal
    Oct 2001
    Messaggi
    535

    ORACLE: PL/SQL Exception When no data Found

    Ho un coursore che estrae i dati di una tabella PIPPO

    All'interno del loop di questo cursore eseguo una select di una tabella che chiamo STORICO

    Devo praticamente confrontare l'ugulaglianza di alcuni campi tra queste due tabelle.

    In questo modo:



    CURSOR c1 IS
    select * from PIPPO where .....;

    BEGIN

    for riga in c1 LOOP /*inizio il ciclo per ogni scheda in c1 */

    ....
    ....
    ....


    SELECT CAMPO1, CAMPO2, CAMPO3 INTO C1,C2,C3 FROM STORICO WHERE CAMPO5= rc.colonna5 and id_storico=num;




    N.B. rc. colonna5 recupera il valore del campo colonna5 della tabella PIPPO.

    Non avendo definito un cursore nella select dello storico se la select č nulla mi da errore.

    Io vorrei creare una EXCEPTION in modo che se la select ritorna NULL esca.

    Non riesco a farla perchč non ho definito la select con un cursore.

    Come posso fare

    Grazie a tutti.

  2. #2

    Re: ORACLE: PL/SQL Exception When no data Found

    CURSOR c1 IS
    select * from PIPPO where .....;
    BEGIN
    for riga in c1 LOOP /*inizio il ciclo per ogni scheda in c1 */
    ....
    ....
    ....

    BEGIN
    SELECT CAMPO1, CAMPO2, CAMPO3
    INTO C1,C2,C3
    FROM STORICO
    WHERE CAMPO5= rc.colonna5
    and id_storico=num;
    EXCEPTION WHEN NO_DATA FOUND THEN
    ...
    ...
    ...
    END
    END


    spero ti esserti stata utile...
    I ricordi sono spine in fondo al cuore. .:N:.

  3. #3
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    CURSOR c1 IS
    select * from PIPPO where .....;

    BEGIN

    for riga in c1 LOOP

    BEGIN

    SELECT CAMPO1, CAMPO2, CAMPO3 INTO C1,C2,C3 FROM STORICO WHERE CAMPO5= rc.colonna5 and id_storico=num;

    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    EXIT;
    END;

    END LOOP;
    dovrebbe funzionare

  4. #4

    Re: Re: ORACLE: PL/SQL Exception When no data Found

    Originariamente inviato da sanomadi
    CURSOR c1 IS
    select * from PIPPO where .....;
    BEGIN
    for riga in c1 LOOP /*inizio il ciclo per ogni scheda in c1 */
    ....
    ....
    ....

    BEGIN
    SELECT CAMPO1, CAMPO2, CAMPO3
    INTO C1,C2,C3
    FROM STORICO
    WHERE CAMPO5= rc.colonna5
    and id_storico=num;
    EXCEPTION WHEN NO_DATA FOUND THEN
    ...
    ...
    ...
    END
    END


    spero ti esserti stata utile...
    I ricordi sono spine in fondo al cuore. .:N:.

  5. #5
    Utente di HTML.it L'avatar di Elena78
    Registrato dal
    Oct 2001
    Messaggi
    535

    Re: Re: ORACLE: PL/SQL Exception When no data Found

    Originariamente inviato da sanomadi
    CURSOR c1 IS
    select * from PIPPO where .....;
    BEGIN
    for riga in c1 LOOP /*inizio il ciclo per ogni scheda in c1 */
    ....
    ....
    ....

    BEGIN
    SELECT CAMPO1, CAMPO2, CAMPO3
    INTO C1,C2,C3
    FROM STORICO
    WHERE CAMPO5= rc.colonna5
    and id_storico=num;
    EXCEPTION WHEN NO_DATA FOUND THEN
    ...
    ...
    ...
    END
    END


    spero ti esserti stata utile...


    Ci avevo giā provato ma purtroppo mi da questo errore:

    PLS-00103: Encountered the symbol "EXCEPTION" when expecting one of the following:

    begin declare end exit for goto if loop mod null pragma raise
    return select update while <an identifier>
    <a

    Cosa sbaglio?? :master:

  6. #6

    Re: Re: Re: ORACLE: PL/SQL Exception When no data Found

    l'hai aperto il begin prima della select e chiuso dopo l'exception???

    a me ha funzionato un milione di volte...
    I ricordi sono spine in fondo al cuore. .:N:.

  7. #7
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    il ; dopo gli end finali?

    e poi non deve dichiarare un 'oggetto' EXCEPTION? :master:


    'ngiorno

  8. #8
    Utente di HTML.it L'avatar di Elena78
    Registrato dal
    Oct 2001
    Messaggi
    535
    A posto a posto grazie, avevo posizionato il begin nel punto sbagliato

    Grazie a tutti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.