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 :

Test si variable de type %rowtype est vide


Sujet :

PL/SQL Oracle

  1. #1
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Points : 96
    Points
    96
    Par défaut Test si variable de type %rowtype est vide
    Bonjour,

    Je me casse la tete sur un probleme qui me parrait simple:
    J'ai une variable

    maVar table%Rowtype;

    je fais un select into dessus pour recuperer une ligne que je stocke dedan.
    Avant de manipuler cette ligne je voudrai faire un simple test pour verifier qu'elle n'est pas vide (comme ca peut arriver) car sinon la suite plante.

    en gros:

    IF maVar IS NOT NULL THEN

    Ca ne marche pas.
    Que faire ?

    Merci.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 386
    Points : 220
    Points
    220
    Par défaut
    Peux-tu envoyer un peu plus de code ?

    @+

  3. #3
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Select Into provoquera une erreur NO_DATA_FOUND si la ligne ne peut pas être lue depuis la base. Il n'y a donc rien de plus a tester...
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  4. #4
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Points : 96
    Points
    96
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    PROCEDURE TOTO is
     
      cursor cucu is select 
        p.A as A, 
        p.B as B
        from tableA p ;
     
     maVar tableB%Rowtype;   
     
      BEGIN
     
      FOR rec IN cucu LOOP
     
         select * into maVar from tableB b where b.ID = rec.id;
     
         IF maVar IS NOT NULL THEN --AIE !!
          insert_procedure(maVar .truc, maVar.machin, rec.bidule); 
         END IF;
     
     
      END LOOP;
     
     END;

  5. #5
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Points : 96
    Points
    96
    Par défaut
    et comment je peux recuperrer cette erreur pour faire un traitement ?

    genre try/catch de java ?

  6. #6
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    En utilisant les exceptions
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  7. #7
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Points : 96
    Points
    96
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    PROCEDURE TOTO IS
     
      cursor cucu IS SELECT 
        p.A AS A, 
        p.B AS B
        FROM tableA p ;
     
     maVar tableB%Rowtype;   
     
      BEGIN
     
      FOR rec IN cucu LOOP
     
         SELECT * INTO maVar FROM tableB b WHERE b.ID = rec.id;
     
          insert_procedure(maVar .truc, maVar.machin, rec.bidule); 
     
     EXCEPTION
          WHEN NO_DATA_FOUND Then
          insert_procedure(null, null, rec.bidule);   
     
      END LOOP;
     
     END;
    voila ce que j'ai donc fait, mais je ne veux pas sortir de la boucle, meme si il y a une exception...
    C'est normal ?

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 386
    Points : 220
    Points
    220
    Par défaut
    A tester:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT * INTO maVar FROM tableB b WHERE b.ID = rec.id;
     
    EXCEPTION
    WHEN no_data_found     THEN
          insert_procedure(maVar .truc, maVar.machin, rec.bidule); 
    END;

  9. #9
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Il faut encadrer le SELECT INTO par un block Begin - Exception - End, le tout à l'intérieur de la boucle.
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  10. #10
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Points : 96
    Points
    96
    Par défaut


    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. teste si la reponse du requete est vide
    Par jalalnet dans le forum Développement
    Réponses: 1
    Dernier message: 19/06/2011, 10h39
  2. tester input type file est vide ou non
    Par sooprano dans le forum Langage
    Réponses: 4
    Dernier message: 20/05/2011, 08h57
  3. Réponses: 3
    Dernier message: 11/10/2010, 12h50
  4. Vérifier si une variable de session existe && est vide ?
    Par c-bolo dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 27/12/2009, 22h06
  5. Savoir quand une variable ou un tableau est vide
    Par cryptorchild dans le forum Langage
    Réponses: 1
    Dernier message: 17/02/2006, 08h40

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