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 :

Aucune donnée trouvée


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Etudiante
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Par défaut Aucune donnée trouvée
    Bonjour,

    Je dispose d'une table mois avec id,numMois,nomMois.Maintenant,je voudrais récupérer l'id d'un mois si nomMois est égal au mois du système mais je bute sur l'erreur : aucune donnée trouvée et ce depuis 3 jours.Je vous mets la requête que je pense être à l'origine de cette erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id INTO idMois_v FROM Mois WHERE Mois.nomMois IN ( SELECT TO_CHAR(SYSDATE,'MONTH') FROM DUAL );
    J'ai aussi essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TO_CHAR(SYSDATE,'MONTH') into mois_v FROM DUAL;
    Ensuite je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT id INTO idMois_v FROM Mois WHERE Mois.nomMois = 'mois_v' from Mois;
    SELECT id INTO idMois_v FROM Mois WHERE Mois.nomMois like 'mois_v' from Mois;
    Si quelqu'un pourrait m'aider ce serait génial je dois rendre le projet avant vendredi.Merci d'avance pour vos réponses.

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Par défaut
    Est-ce que les mois contenue dans ta table sont dans la même langue que le NLS_LANG d'oracle (Français / Anglais)

    Les noms de mois sont stockés dans quel type de champs (CHAR, VARCHAR, VARCHAR2, DATE ..)
    Problème de TRIM ?

    Que donne les requêtes suivantes ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DESC Mois;
     
    SELECT '>'||Nom_mois||'<'
    FROM Mois;
     
    SELECT TO_CHAR(SYSDATE,'MONTH') FROM DUAL;

  3. #3
    Membre chevronné
    Avatar de Bibeleuh
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2010
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 209
    Par défaut
    Salut,

    Comme le message d'erreur l'indique, le mois donné par le système n'existe pas dans ta table Mois

    Essaye de regarder ce que te renvois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT TO_CHAR(SYSDATE,'MONTH') FROM DUAL;
    Ensuite test cette requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT mois_v from Mois WHERE mois_v = TO_CHAR(SYSDATE,'MONTH')
    Si elle retourne rien, regarde dans ta table mois_v en faisant un SELECT * pour voir quel mois est censé correspondre...
    Il y a peut être la casse qui diffère entre les deux, un espace ou un accent (ce qui m'étonnerais en juillet)

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Etudiante
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Par défaut Oracle/plsql:aucune donnée trouvée
    Bonjour,j'ai fait les requêtes que vous m'avez demandé et voici les résultats:
    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
    SQL> desc Mois;
     Nom                                       NULL ?   Type
     ----------------------------------------- -------- ---------------
     
     ID                                        NOT NULL NUMBER(10)
     NOMMOIS                                   NOT NULL VARCHAR2(20)
     NUMMOIS                                            NUMBER(38)
     
    SQL> select '>'||NomMois||'<' from Mois;
     
    '>'||NOMMOIS||'<'
    ----------------------
    >JUILLET<
    >Janvier<
    >Fevrier<
    >Mars<
     
    SQL> select to_char(sysdate,'MONTH') FROM DUAL;
     
    TO_CHAR(S
    ---------
    JUILLET

  5. #5
    Membre Expert
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2012
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2012
    Messages : 652
    Par défaut
    A première vue, pas de soucis d'espace dans les noms de mois stockés par contre la fonction Oracle doit te ramener le nom du mois avec des espaces d'où ton problème.
    Pour le vérifier, exécute ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT '>'||TO_CHAR(SYSDATE,'MONTH')||'<'
    FROM dual
    Il y a aussi un gros risque au niveau de la casse...

    Peux-tu essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM Mois 
    WHERE UPPER(nomMois) = UPPER(TRIM(TO_CHAR(SYSDATE,'MONTH')));
    Dans la table Mois on peut voir un champs NUMMOIS. Correspond t-il au n° de mois ? (1 pour janvier, 2 pour février...).
    Si oui alors ceci sera plus efficace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM Mois 
    WHERE IdMois = TO_CHAR(SYSDATE,'MM');

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Etudiante
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Par défaut Oracle/plsql:aucune donnée trouvée
    Resultats des requêtes précédentes:
    SQL> select '>'||to_char(sysdate,'month')||'<' from dual;

    '>'||TO_CHA
    -----------
    >juillet <

    SQL> select * from Mois where upper(nomMois) = upper(trim(to_char(sysdate,'month
    ')));

    ID NOMMOIS NUMMOIS
    ---------- -------------------- ----------
    4 JUILLET 7

    Oui,le numMois correspond au numéro du mois 1=janvier,2=fevrier,...mais j'ai pas besoin du numéro du mois mais de son id afin de pouvoir l'insérer dans une autre table.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Etudiante
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Par défaut Oracle/plsql:aucune donnée trouvée
    En ce qui concerne,la casse ça pourrait effectivement poser un problème pour les autres mois déjà enregistrés à l'exception du mois de JUILLET.En effet,dans ma requête: SELECT id INTO idMois_v FROM Mois WHERE Mois.nomMois = ( SELECT TO_CHAR(SYSDATE,'MONTH') FROM DUAL);
    SELECT TO_CHAR(SYSDATE,'MONTH') FROM DUAL; me renvoie le mois de juillet comme ça:JUILLET et dans la table mois juillet est enregistré en majuscule.Donc,le problème de la casse ne se pose pas pour le mois de juillet.D'ailleurs c'est en utilisant SELECT TO_CHAR(SYSDATE,'MONTH') FROM DUAL; que je l'ai inséré dans ma table mois.

Discussions similaires

  1. Erreur SQL, aucune donnée trouvée
    Par kilwa dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 29/12/2014, 18h05
  2. tOracleSP Aucune donnée trouvée
    Par Yozol dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 11/10/2012, 17h50
  3. Comment Eviter ORA-01403(aucune donnée trouvée)
    Par riadhhwajdii dans le forum PL/SQL
    Réponses: 7
    Dernier message: 28/01/2011, 12h06
  4. ORA-01403: Aucune donnée trouvée
    Par MaRTy59 dans le forum PL/SQL
    Réponses: 9
    Dernier message: 10/08/2010, 11h26
  5. ERREUR Aucune donnée trouvée
    Par TheBlue dans le forum SQL
    Réponses: 1
    Dernier message: 20/05/2008, 23h05

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