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 :

Probleme condition sur select PL/SQL


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de l4r3nZu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 154
    Par défaut Probleme condition sur select PL/SQL
    Bonjour,

    Voila mon problème j'aimerai savoir si une variable est déjà enregistrée en table afin de savoir si celui si est un doublon ou pas.

    Au debut j'ai essayé avec un curseur sur la table a interroger en passant donc par des variables mais le traitement était super long.

    Là j'essaie de passer par une interrogation de base mais je rencontre un problème, quand ma requête ne contient pas résultat (donc pas un doublon) cela m'arrête le programme.

    Voici mon code n'y a-t-il pas une manière plus intelligente de le coder ?

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Si vous voulez éviter les doublons, pourquoi ne pas simplement mettre une contrainte d'unicité sur votre colonne ?

  3. #3
    Membre expérimenté
    Avatar de l4r3nZu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 154
    Par défaut
    Je ne veux pas les éviter mais juste savoir si mon identifiant a déja été rencontré pour effectuer des cumuls par la suite.

    Pour mieux expliquer :
    • Je lis un fichier ligne par ligne
    • J'extrait de cette ligne des données en variable
    • Si l'identifiant est déja enregistré en table alors traitement1
    • SI l'identifiant n'est pas enregistré en table alors traitement2

  4. #4
    Membre expérimenté
    Avatar de l4r3nZu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 154
    Par défaut
    Et quand je dis traitement c'est pas mal de lignes de code (200 si pas doublons et 100 si doublon 4 cumuls avec pour chaque cumul des conditions).

    En fait avec un curseur ca marchait nickel, mais le problème est le temps d'exécution que je dois diminuer de 30-40 %.
    Et je pense que c'est vraiment à ce niveau que je peux optimiser.

    Mon code à optimiser :

  5. #5
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Des doublons avec un like ? C'est bizarre !

    mais bon, la bonne manière de tester des doublons en select c'est de gérer les exception.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    DECLARE 
    	v NUMBER;
    BEGIN 
      SELECT 1
      INTO v
      FROM TA_INT_SAS
      WHERE NUMOPER LIKE '%'||my_CRO.NOREFINT||'%' 
      AND ROWNUM= 1;
      eDoublon := TRUE;
    EXCEPTION WHEN NO_DATA_FOUND 
    THEN eDoublon := FALSE;
    END;

  6. #6
    Membre expérimenté
    Avatar de l4r3nZu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 154
    Par défaut
    YES !! Je n'avais pas pensé à coder une exception !

    Merci beaucoup !

  7. #7
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Cela dit, si tu veux aussi qu'on t'aide à optimiser ton traitement, y'a pas de problèmes, t'as qu'à poster le code complet.

Discussions similaires

  1. probleme soustraction sur une requte sql
    Par kroma23 dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/06/2011, 13h27
  2. [MySQL] condition sur une requete sql
    Par brahda dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 21/05/2011, 18h09
  3. condition sur resultat requete sql
    Par GYooo dans le forum Android
    Réponses: 1
    Dernier message: 02/03/2011, 15h02
  4. condition sur la requete sql : is nothing
    Par ciara dans le forum VB.NET
    Réponses: 2
    Dernier message: 22/09/2009, 15h08
  5. Réponses: 3
    Dernier message: 03/05/2007, 11h06

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