IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Continuer un traitement après avoir relevé une erreur


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Par défaut Continuer un traitement après avoir relevé une erreur
    Bonjour,

    je souhaiterais continuer un traitement après un select même si jai une erreur.
    Comment dois je m'y prendre?
    Je vous montre mon exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    select adr into wadr from maTable 
        where id=wNumCourant
        and dt= (select max(dt) from  maTable
                      where id=wNumCourant);
     
    if sql%rowcount=0 then
     dbms_output.put_line('aucune ligne trouvée pour le num ' ||wNumCourant);
    end if;
    wNumCourant est un numéro récupérer à l'aide d'un cuseur sur une autre table.
    Mon morceau de code est compris dans ce curseur.
    Je souhaiterais simplement relever la ligne en erreur en affichant l'erreur et continuer le traitement pour les autres.

    Je suis perdu et j'ai tous essayé en faisant un if wadr !=0 etc.....

    Merci de votre aide

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    1) Quelque chose de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Begin
      Select ...
        Into ...
        From ...
      Where ....
      -- je suis ici parce que l'enregistrement est trouvé
      ...
      Exception
        When NO_DATA_FOUND Then
           -- je suis ici parce que l'enregistrement n'existe pas
    End
    2) Utiliser le résultat d'un curseur comme critère de recherche dans des autres select est une mauvaise solution cad peu performante. Plutôt essayez d'utiliser des jointures voir des updates des masse et non pas ligne à ligne.

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/04/2015, 23h26
  2. [XL-2010] Erreur système en enregistrement après avoir inséré une listbox
    Par Marinette20 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/03/2014, 17h23
  3. Réponses: 6
    Dernier message: 22/01/2008, 21h06
  4. Réponses: 9
    Dernier message: 05/01/2007, 10h51
  5. Réponses: 1
    Dernier message: 15/06/2006, 18h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo