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 :

Update avec select


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 15
    Points
    15
    Par défaut Update avec select
    Bonjour,
    je souhaitais mettre à jour un score en faisant un update avec select pour faire une jointure avec table evalu:

    Erreur suivante:
    Erreur SQL : ORA-01427: sous-requête ramenant un enregistrement de plus d'une ligne
    01427. 00000 - "single-row subquery returns more than one row"
    *Cause:
    *Action:

    Le select fonctionne bien:
    select utl_match.jaro_winkler_similarity(e1.val, e2.val)
    from toto t
    join evalu e1 on e1.id = t.id_1 and e1.cod_val = t.val_1
    join evalu e2 on e2.id = t.id_2 and e2.cod_val = t.val_2;

    Si vous avez une solution, merci ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    update toto
           SET score=
           (select utl_match.jaro_winkler_similarity(e1.val, e2.val)
    from toto t
         join evalu e1 on e1.id = t.id_1 and e1.cod_val = t.val_1
         join evalu e2 on e2.id = t.id_2 and e2.cod_val = t.val_2);

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    Essayez comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    update toto t
       set t.score = utl_match.jaro_winkler_similarity( (select e1.val from evalu e1 where e1.id = t.id_1 and e1.cod_val = t.val_1)
                                                      , (select e2.val from evalu e2 where e2.id = t.id_2 and e2.cod_val = t.val_2))
     where exists (select null from evalu e1 where e1.id = t.id_1 and e1.cod_val = t.val_1)
       and exists (select null from evalu e2 where e2.id = t.id_2 and e2.cod_val = t.val_2);
    Ou comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     merge into toto tgt
     using (select t.rowid as rid
                 , utl_match.jaro_winkler_similarity(e1.val, e2.val) as jws
              from toto t
              join evalu e1  on e1.id      = t.id_1
                            and e1.cod_val = t.val_1
              join evalu e2  on e2.id      = t.id_2
                            and e2.cod_val = t.val_2) src
        on (src.rid = tgt.rowid)
      when matched then update 
       set tgt.score = src.jws;

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Merci,
    j'ai essayé la première méthode qui semble bien fonctionner

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

Discussions similaires

  1. Requête update avec select imrbiqué
    Par Woufeigh dans le forum Requêtes
    Réponses: 1
    Dernier message: 05/05/2008, 01h43
  2. Requête Update avec Select.
    Par franzarelli dans le forum Langage SQL
    Réponses: 1
    Dernier message: 25/03/2008, 06h33
  3. Update avec Select : je n'y arrive pas.
    Par marye77 dans le forum Langage SQL
    Réponses: 15
    Dernier message: 22/02/2008, 17h51
  4. UPDATE avec SELECT sur la même table
    Par Invité dans le forum Langage SQL
    Réponses: 7
    Dernier message: 07/12/2007, 04h39
  5. Requete Update avec Select imbriqué: etrange resultat!
    Par corentone dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/08/2007, 16h05

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