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

SQL Oracle Discussion :

ORA-01427: sous-requête ramenant un enregistrement de plus d'une ligne


Sujet :

SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut ORA-01427: sous-requête ramenant un enregistrement de plus d'une ligne
    Bonjour,

    Voici l'erreur que j'obtiens lorsque j'exécute la requête suivante avec dans ma clause WHERE le timestamp entre le 06/02/2015 et 07/02/2015.
    Au-délà du 07/02, ma requête fonctionne parfaitement.

    J'ai inspecté le contenu de ma table au jour du 06/02, mais n'ai rien constaté d'anormal..

    Voyez-vous quelque chose qui cloche dans ma requête?!

    Merci d'avance pour votre aide.


    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
    SELECT J.Id,
      j.TIMESTAMP, 
      j.Status, 
      j.version, 
      j.Environment, 
      Extractvalue(J.Questionnaire,'/Response/Patient/URGNUM') URGNUM, 
      Extractvalue(J.Questionnaire,'/Response/Patient/DAYURGIN') || '/' || Extractvalue(J.Questionnaire,'/Response/Patient/MONTHURGIN') || '/' || Extractvalue(J.Questionnaire,'/Response/Patient/YEARURGIN') DTEDEB, 
      Extractvalue(J.Questionnaire,'/Response/Patient/HOURURGIN') || ':' || Extractvalue(J.Questionnaire,'/Response/Patient/MINURGIN') HREDEB, 
      Extractvalue(J.Questionnaire,'/Response/Patient/PATNUM') PATNUM, 
    (Select Left(Nom,20) || ' ' || Left(Prenom,20) From Patients Where Numnat = Extractvalue(J.Questionnaire,'/Response/Patient/PATNUM')) Patient, 
      (Select numpat From Patients Where Numnat = Extractvalue(J.Questionnaire,'/Response/Patient/PATNUM')) NUMPAT 
    FROM ureg.Journal J 
    WHERE TIMESTAMP between '06/02/2015' and '07/02/2015'
    ORDER BY to_date(Extractvalue(J.Questionnaire,'/Response/Patient/DAYURGIN') || '/' || Extractvalue(J.Questionnaire,'/Response/Patient/MONTHURGIN') || '/' || Extractvalue(J.Questionnaire,'/Response/Patient/YEARURGIN'),'dd/mm/yyyy'), 
      to_date(Extractvalue(J.Questionnaire,'/Response/Patient/HOURURGIN') || ':' || Extractvalue(J.Questionnaire,'/Response/Patient/MINURGIN'),'HH24:MI')

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    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
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    Merci de mettre le tag Code (l'icone #) autour de ton code afin d'augmenter la lisibilité.


    Concernant l'erreur, elle indique qu'un sous select ramène plus d'une ligne

    Ca doit être un des 2 suivants
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    (SELECT LEFT(Nom,20) || ' ' || LEFT(Prenom,20) FROM Patients WHERE Numnat = EXTRACTVALUE(J.Questionnaire,'/Response/Patient/PATNUM')) Patient,
    (SELECT numpat FROM Patients WHERE Numnat = EXTRACTVALUE(J.Questionnaire,'/Response/Patient/PATNUM')) NUMPAT
    Pour le vérifier, rajoute un ROWNUM = 1 dans les 2 afin de voir si l'erreur vient bien de là.

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/03/2015, 15h01
  2. Réponses: 6
    Dernier message: 09/12/2014, 08h39
  3. Réponses: 1
    Dernier message: 19/04/2013, 14h14
  4. Réponses: 1
    Dernier message: 20/04/2011, 12h07
  5. Réponses: 6
    Dernier message: 06/09/2010, 10h55

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