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 :

Mise à jour de plusieurs ligne dans un UPDATE


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de sofien
    Inscrit en
    Février 2005
    Messages
    325
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Février 2005
    Messages : 325
    Par défaut Mise à jour de plusieurs ligne dans un UPDATE
    Bonjour,

    Voiçi ma requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    UPDATE AAAA
     
    SET mark_session = (SELECT marks_det.marks_session 
    				   FROM marks_det,inscription,student,AAAA,benefit
    				   WHERE marks_det.AVERAGE = AAAA.AVERAGE
    				   AND inscription.ID = marks_det.INSCRIPTION_ID
    				   AND inscription.STUDENT_ID = student.ID
    				   AND student.code = AAAA.CODE
    				   AND marks_det.BEN_ID = benefit.id)
    				   WHERE AAAA.CODE_MAT = benefit.COD
    Le problème içi c'est que le SELECT renvoit plusieurs valeurs bienqu'il y'a des jointures et c'est normal car je n'ai pas préciser une valeur.
    Comment faire pour effectuer cette mise à jours? Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 41
    Par défaut
    Bonjour,

    tu ne peux pas mettre à jour un champ si ton select rapporte plusieurs lignes... tu peux éventuellement ajouter un rownum au select pour restreindre à la première valeur trouvée ?

  3. #3
    Membre éclairé Avatar de sofien
    Inscrit en
    Février 2005
    Messages
    325
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Février 2005
    Messages : 325
    Par défaut
    je ferai une procédure ...et je vais vous tenir au courant

  4. #4
    Membre éclairé Avatar de sofien
    Inscrit en
    Février 2005
    Messages
    325
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Février 2005
    Messages : 325
    Par défaut
    voiçi la proédure que j'ai faite
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    CREATE OR REPLACE PROCEDURE modifAAAA is
    begin
     
    declare
    cursor c1 is select * from VIEW1;
    c1row c1%rowtype;
     
    open c1;
    loop
    fetch c1 into c1row;
    exit when c1%NOTFOUND;
    update AAAA
    SET mark_session := c1row.marks_session
    WHERE
    AAAA.ADDRESS = c1row.ADDRESS
    AND AAAA.AN = c1row.AN
    AND AAAA.AVERAGE =c1row.AVERAGE 
    AND AAAA.BEN_COEF = c1row.BEN_COEF
    AND AAAA.BIRTHDAY = c1row.BIRTHDAY
    AND AAAA.CODE = c1row.CODE
    AND AAAA.CODE_MAT = c1row.CODE_MAT
    AND AAAA.CODE_POSTAL = c1row.CODE_POSTAL
    AND AAAA.DIP = c1row.DIP
    AND AAAA.FAC = c1row.FAC
    AND AAAA.FNAME = c1row.FNAME
    AND AAAA.GENDER = c1row.GENDER
    AND AAAA.ID = c1row.ID 
    AND AAAA.INSCRI = c1row.INSCRI
    AND AAAA.LNAME = c1row.LNAME
    AND AAAA.MATIERE = c1row.MATIERE
    AND AAAA.NAME = c1row.NAME
    AND AAAA.NAME_1 = c1row.NAME_1
    AND AAAA.OBSERVATION = c1row.OBSERVATION  
    AND AAAA.PERIODE = c1row.PERIODE
    AND AAAA.REGION = c1row.REGION
    AND AAAA.RESPONSIBLE = c1row.RESPONSIBLE
    AND AAAA.SC_F = c1row.SC_F
    AND AAAA.SC_L = c1row.SC_L 
    AND AAAA.TITLE = c1row.TITLE
    AND AAAA.TITRE = c1row.TITRE
    AND AAAA.YEAR_ID = c1row.YEAR_ID
     
    end loop;
    close c1;
    end;
    Mais j'ai tjr cette erreur dont je n'ai pas pu la résoudre
    The following error has occurred:

    PROCEDURE SRPDEV.UPDATEAAAA
    On line: 10
    PLS-00103: Encountered the symbol "FETCH" when expecting one of the following:

    constant exception <an identifier>
    <a double-quoted delimited-identifier> table LONG_ double ref
    char binary na

  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
    Le forum n'est pas fait pour résoudre des problèmes de syntaxe.

    pas de := dans du sql et il manque un ; à la fin de l'update.

  6. #6
    Membre éclairé Avatar de sofien
    Inscrit en
    Février 2005
    Messages
    325
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Février 2005
    Messages : 325
    Par défaut
    Citation Envoyé par McM Voir le message
    Le forum n'est pas fait pour résoudre des problèmes de syntaxe.

    pas de := dans du sql et il manque un ; à la fin de l'update.
    Ce forum est fait pour aider les gens Mr sinon ou est son utilité!! par contre merci pour ton aide mais j'ai déja corriger ces erreurs...


    Maintenant l'update ne marche pas

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

Discussions similaires

  1. Mise à jour d'une ligne dans un fichier texte en php
    Par Pouchou_for_ever dans le forum Langage
    Réponses: 5
    Dernier message: 28/10/2010, 11h31
  2. Réponses: 2
    Dernier message: 21/09/2009, 14h20
  3. Réponses: 1
    Dernier message: 05/08/2009, 23h29
  4. [AC-2003] mise à jour d'une ligne dans le cas des doublon
    Par radahm dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 11/06/2009, 08h30
  5. [MySQL] Mise à jours de plusieurs lignes avec mysql
    Par hakou08 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 10/04/2009, 20h10

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