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

Oracle Discussion :

Oracle 9i : Vérifier qu'une ligne existe


Sujet :

Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 90
    Points : 62
    Points
    62
    Par défaut Oracle 9i : Vérifier qu'une ligne existe
    Bonjour,

    Je voudrais savoir comment on vérifie dans une procédure stockée qu'une ligne existe ou pas dans une table.
    J'ai essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT VALIDITY_ID INTO TEMP FROM OFFLINE_VALIDITY WHERE EXISTS (SELECT VALIDITYID FROM OFFLINE_VALIDITY WHERE
    APP_ID = APPID AND VALIDITY_ID = VALIDITYID AND 
    MAG_ID = MAGID AND CAIS_ID = CAISID AND USR_ID = USERID);
     
    IF TEMP IS NOT NULL THEN
     
     UPDATE  ... 
    ELSE
     INSERT ...
    Mais lors de l'exécution, on m'indique qu'il y a une erreur et qu'aucune ligne n'existe.
    De plus, si je tente un IF EXISTS ( ... ) dans la procédure, cela n'est pas accepté.
    Donc comment faire pour vérifier qu'une ligne existe et si c'est le cas, la mettre à jour sinon la créer.

    Merci. [/code]

  2. #2
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    select count(*) from .....
    Signé : Capitaine Jean-Luc Picard

  3. #3
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    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
     
    BEGIN
     
    SELECT VALIDITY_ID INTO TEMP FROM OFFLINE_VALIDITY WHERE EXISTS (SELECT VALIDITYID FROM OFFLINE_VALIDITY WHERE 
    APP_ID = APPID AND VALIDITY_ID = VALIDITYID AND 
    MAG_ID = MAGID AND CAIS_ID = CAISID AND USR_ID = USERID); 
     
    -- il y a au moins une ligne
    INSERT ...
     
    EXCEPTION
     WHEN NO_DATA_FOUND THEN
     -- Pas de ligne
     UPDATE  ... 
    END;

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par argoet
    select count(*) from .....
    parfait pour éviter d'avoir des perfs optimales

    Rechercher si une ligne existe est plus rapide que compter toutes les lignes

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 90
    Points : 62
    Points
    62
    Par défaut
    Merci pour les réponses rapides.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 19/09/2014, 09h12
  2. [Batch] Comment vérifier si une ligne de texte existe dans un fichier .txt ?
    Par noder347 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 19/06/2013, 00h54
  3. Réponses: 2
    Dernier message: 07/05/2010, 13h36
  4. Vérifier qu'une variable existe
    Par Phenomenium dans le forum ASP
    Réponses: 1
    Dernier message: 05/10/2006, 15h00
  5. vérifier si une ligne existe, et lister les champs
    Par AIexis dans le forum Débuter
    Réponses: 15
    Dernier message: 27/12/2005, 21h06

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