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 :

erreur dans une procedure


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 14
    Par défaut erreur dans une procedure
    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
    create or replace procedure detaille
    is
    compt int :=1;
    nbelement int:='select count(*) from detailcommande';
    idcome detailcommande.idcom%TYPE;
    idpre detailcommande.idpr%TYPE;
    cursor detail is select idcom,idpr from detailcommande; 
    sommequantite number(8);
    begin
    open detail;
    loop
    fetch detail into idcome,idpre ;
    exit when detail%NOTFOUND;
    select sommequantite=quantite*prix from produit p,detailcommande d where p.idpr=d.idpr and p.idpr=idpre and idcom=idcome
    update detailcommande set prixtotal=sommequantite where idpr=idpre and idcom=idcome
    end loop;
    close detail;
    commit;
    end ;
    ce code dans sa compilation me donne cette erreur
    ERREUR à la ligne 19 : PLS-00103: Symbole ";" rencontré à la place d'un des symboles suivants :

    loop

  2. #2
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Dans ce cas, il est inutile de faire une boucle !
    Un simple sql suffit !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE OR REPLACE procedure detaille
    IS
    BEGIN
    UPDATE detailcommande d
    SET prixtotal=quantite*
    (select prix 
    FROM produit p
    WHERE p.idpr=d.idpr 
    AND p.idpr=d.idpre
    AND p.idcom=d.idcome)
    commit;
    end ;

Discussions similaires

  1. Erreur dans une store procedure
    Par java250r dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 04/07/2012, 18h59
  2. [Sql server 2000] gerer les erreurs dans une procedure
    Par lemagicien dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/03/2008, 21h15
  3. [DEBUTANT] Une vue dans une procedure stockee ?
    Par Invité dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/02/2004, 11h57
  4. Réponses: 4
    Dernier message: 28/12/2003, 15h50
  5. [TP]code asm dans une procedure
    Par M.Dlb dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 17/08/2002, 20h43

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