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 execution procedure


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Par défaut erreur execution procedure
    Bonjour
    je viens de créer une procédure , ma procedure se crée sans problème mais au moment de l'execution j'ai une erreur que je n'arrive pas à localiser:

    la 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    create or replace procedure saveItemAddition(itemCompt out integer,rFQ_Number in RFQ_PARTS.RFQ_RFQ_ID%TYPE, part_replaced in RFQ_PARTS.PART_REPLACED_ID%TYPE, nb_of_parts_by_unit in RFQ_PARTS.RFQPARTS_NBPARTSBYUNIT%TYPE, target_price in RFQ_PARTS.RFQPARTS_TARGETPRICE%TYPE,  comments in RFQ_PARTS.RFQPARTS_COMMENTS%TYPE, catalog_part RFQ_PARTS.PART_CATALOG%TYPE, ramp_up_qty in RFQ_PARTS.RFQPARTS_RAMPUPQTY%TYPE,ramp_up_date in RFQ_PARTS.RFQPARTS_RAMPUPDATE%TYPE, full_prod_qty in RFQ_PARTS.RFQPARTS_FULLQTY%TYPE, full_Prod_date in RFQ_PARTS.RFQPARTS_FULLDATE%TYPE,proto_qty in RFQ_PARTS.RFQPARTS_PROTOQTY%TYPE, proto_date in RFQ_PARTS.RFQPARTS_PROTODATE%TYPE , pre_serie_qty in RFQ_PARTS.RFQPARTS_PRESERIEQTY%TYPE, pre_serie_date in RFQ_PARTS.RFQPARTS_PRESERIEDATE%TYPE)
    is
     
     
    begin
    --Test si le nombre d'item>1
    if (itemCompt>1)
    then
    update RFQ_PARTS 
    set 
     
    RFQ_PARTS.RFQ_RFQ_ID=rFQ_Number, 
    RFQ_PARTS.PART_REPLACED_ID=part_replaced,
    RFQ_PARTS.RFQPARTS_NBPARTSBYUNIT=nb_of_parts_by_unit ,
    RFQ_PARTS.RFQPARTS_TARGETPRICE =target_price ,
    RFQ_PARTS.RFQPARTS_COMMENTS=comments ,
    RFQ_PARTS.PART_CATALOG=catalog_part ,
    RFQ_PARTS.RFQPARTS_RAMPUPQTY =ramp_up_qty ,
    RFQ_PARTS.RFQPARTS_RAMPUPDATE=ramp_up_date ,
    RFQ_PARTS.RFQPARTS_FULLQTY=full_prod_qty ,
    RFQ_PARTS.RFQPARTS_FULLDATE=full_Prod_date ,
    RFQ_PARTS.RFQPARTS_PROTOQTY=proto_qty ,
    RFQ_PARTS.RFQPARTS_PROTODATE=proto_date ,
    RFQ_PARTS.RFQPARTS_PRESERIEQTY=pre_serie_qty ,
    RFQ_PARTS.RFQPARTS_PRESERIEDATE=pre_serie_date  
    where 
    RFQ_PARTS.RFQPARTS_ID=( select max(RFQPARTS_ID) from RFQ_PARTS)-1;
     
    end if;
    end;
    l'appel de la procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    execute saveItemAddition(6, 6, 6, 6,  'comments RFQ_PARTS.RFQPARTS_COMMENTS%TYPE', 6, 6,null, 6,null,6, null , 6, null);
    l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Error starting at line 1 in command:
    execute saveItemAddition(6, 6, 6, 6,  'comments RFQ_PARTS.RFQPARTS_COMMENTS%TYPE', 6, 6,null, 6,null,6, null , 6, null);
    Error report:
    ORA-06550: Ligne 1, colonne 7 :
    PLS-00306: wrong number or types of arguments in call to 'SAVEITEMADDITION'
    ORA-06550: Ligne 1, colonne 7 :
    PL/SQL: Statement ignored
    06550. 00000 -  "line %s, column %s:\n%s"
    *Cause:    Usually a PL/SQL compilation error.
    *Action:
    est ce que quelqu'un pourrait m'aider à résoudre le problème???


    Merci

  2. #2
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Par défaut
    Bonjour,

    Avec une indentation c'est déjà plus lisible :

    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
    CREATE OR REPLACE procedure saveItemAddition(itemCompt           out integer,
                                                 rFQ_Number          IN RFQ_PARTS.RFQ_RFQ_ID%TYPE,
                                                 part_replaced       IN RFQ_PARTS.PART_REPLACED_ID%TYPE,
                                                 nb_of_parts_by_unit IN RFQ_PARTS.RFQPARTS_NBPARTSBYUNIT%TYPE,
                                                 target_price        IN RFQ_PARTS.RFQPARTS_TARGETPRICE%TYPE,
                                                 comments            IN RFQ_PARTS.RFQPARTS_COMMENTS%TYPE,
                                                 catalog_part        IN RFQ_PARTS.PART_CATALOG%TYPE,
                                                 ramp_up_qty         IN RFQ_PARTS.RFQPARTS_RAMPUPQTY%TYPE,
                                                 ramp_up_date        IN RFQ_PARTS.RFQPARTS_RAMPUPDATE%TYPE,
                                                 full_prod_qty       IN RFQ_PARTS.RFQPARTS_FULLQTY%TYPE,
                                                 full_Prod_date      IN RFQ_PARTS.RFQPARTS_FULLDATE%TYPE,
                                                 proto_qty           IN RFQ_PARTS.RFQPARTS_PROTOQTY%TYPE,
                                                 proto_date          IN RFQ_PARTS.RFQPARTS_PROTODATE%TYPE,
                                                 pre_serie_qty       IN RFQ_PARTS.RFQPARTS_PRESERIEQTY%TYPE,
                                                 pre_serie_date      IN RFQ_PARTS.RFQPARTS_PRESERIEDATE%TYPE) IS
    
    begin
      --Test si le nombre d'item>1
      IF (itemCompt > 1) then
        UPDATE RFQ_PARTS
           SET RFQ_PARTS.RFQ_RFQ_ID = rFQ_Number,
               RFQ_PARTS.PART_REPLACED_ID       = part_replaced,
               RFQ_PARTS.RFQPARTS_NBPARTSBYUNIT = nb_of_parts_by_unit,
               RFQ_PARTS.RFQPARTS_TARGETPRICE   = target_price,
               RFQ_PARTS.RFQPARTS_COMMENTS      = comments,
               RFQ_PARTS.PART_CATALOG           = catalog_part,
               RFQ_PARTS.RFQPARTS_RAMPUPQTY     = ramp_up_qty,
               RFQ_PARTS.RFQPARTS_RAMPUPDATE    = ramp_up_date,
               RFQ_PARTS.RFQPARTS_FULLQTY       = full_prod_qty,
               RFQ_PARTS.RFQPARTS_FULLDATE      = full_Prod_date,
               RFQ_PARTS.RFQPARTS_PROTOQTY      = proto_qty,
               RFQ_PARTS.RFQPARTS_PROTODATE     = proto_date,
               RFQ_PARTS.RFQPARTS_PRESERIEQTY   = pre_serie_qty,
               RFQ_PARTS.RFQPARTS_PRESERIEDATE  = pre_serie_date
         WHERE RFQ_PARTS.RFQPARTS_ID =
               (SELECT max(RFQPARTS_ID) FROM RFQ_PARTS) - 1;
      
      end IF;
    end;
    On compte 15 arguments .

    Dans ton appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    execute saveItemAddition(6, 
                             6, 
                             6, 
                             6,  
                             'comments RFQ_PARTS.RFQPARTS_COMMENTS%TYPE', 
                             6, 
                             6,
                             NULL, 
                             6,
                             NULL,
                             6, 
                             NULL , 
                             6,
                              NULL);
    On en compte 14 !!!

    Il en manque 1

    ce qui correspond assez au code erreur :
    PLS-00306: wrong number OR types of arguments IN call TO 'SAVEITEMADDITION'
    Cordialement

  3. #3
    Membre Expert
    Femme Profil pro
    Data engineer
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Data engineer
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Par défaut
    Bonjour,

    Comme le dit le message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PLS-00306: wrong number OR types of arguments IN call TO 'SAVEITEMADDITION'
    l'appel à la procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    execute saveItemAddition(6, 6, 6, 6,  'comments RFQ_PARTS.RFQPARTS_COMMENTS%TYPE', 6, 6,NULL, 6,NULL,6, NULL , 6, NULL);
    ne correspond pas au nombre de paramètres de la déclaration (dans la déclaration il y a 5 paramètres avant le commentaire contre 4 dans l'appel) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE OR REPLACE procedure saveItemAddition(itemCompt out integer,rFQ_Number IN RFQ_PARTS.RFQ_RFQ_ID%TYPE, part_replaced IN RFQ_PARTS.PART_REPLACED_ID%TYPE, nb_of_parts_by_unit IN RFQ_PARTS.RFQPARTS_NBPARTSBYUNIT%TYPE, target_price IN RFQ_PARTS.RFQPARTS_TARGETPRICE%TYPE,  comments IN RFQ_PARTS.RFQPARTS_COMMENTS%TYPE, catalog_part RFQ_PARTS.PART_CATALOG%TYPE, ramp_up_qty IN RFQ_PARTS.RFQPARTS_RAMPUPQTY%TYPE,ramp_up_date IN RFQ_PARTS.RFQPARTS_RAMPUPDATE%TYPE, full_prod_qty IN RFQ_PARTS.RFQPARTS_FULLQTY%TYPE, full_Prod_date IN RFQ_PARTS.RFQPARTS_FULLDATE%TYPE,proto_qty IN RFQ_PARTS.RFQPARTS_PROTOQTY%TYPE, proto_date IN RFQ_PARTS.RFQPARTS_PROTODATE%TYPE , pre_serie_qty IN RFQ_PARTS.RFQPARTS_PRESERIEQTY%TYPE, pre_serie_date IN RFQ_PARTS.RFQPARTS_PRESERIEDATE%TYPE)

  4. #4
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Par défaut
    Bonjour,

    D'ailleurs un bon moyen de ne pas en oublier est d'utiliser cette syntaxe :

    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
    DECLARE
    ln_itemCompt	NUMBER;
    BEGIN
    saveItemAddition(itemCompt           => ln_itemCompt				    ,
    	         rFQ_Number          => 6                                           ,																																																								
    	         part_replaced       => 6                                           ,																																																								
    	         nb_of_parts_by_unit => 6                                           ,																																																								
    	         target_price        => 6                                           ,																																																								
    	         comments            => 'comments RFQ_PARTS.RFQPARTS_COMMENTS%TYPE' ,																																																								
    	         catalog_part        => 6                                           ,																																																								
    	         ramp_up_qty         => 6                                           ,																																																								
    	         ramp_up_date        => NULL                                        ,																																																								
    	         full_prod_qty       => 6                                           ,																																																								
    	         full_Prod_date      => NULL                                        ,																																																								
    	         proto_qty           => 6                                           ,																																																								
    	         proto_date          => NULL                                        ,																																																								
    	         pre_serie_qty       => 6                                           ,																																																								
    	         pre_serie_date      => NULL                                         
    	         );
    END;
    /

  5. #5
    Membre Expert

    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 536
    Par défaut
    Bonjour,

    Voici votre procédure

    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
     
    PROCEDURE saveItemAddition(
        itemCompt OUT INTEGER ,
        rFQ_Number          IN RFQ_PARTS.RFQ_RFQ_ID%TYPE ,
        part_replaced       IN RFQ_PARTS.PART_REPLACED_ID%TYPE ,
        nb_of_parts_by_unit IN RFQ_PARTS.RFQPARTS_NBPARTSBYUNIT%TYPE ,
        target_price        IN RFQ_PARTS.RFQPARTS_TARGETPRICE%TYPE ,
        comments            IN RFQ_PARTS.RFQPARTS_COMMENTS%TYPE ,
        catalog_part RFQ_PARTS.PART_CATALOG%TYPE ,
        ramp_up_qty    IN RFQ_PARTS.RFQPARTS_RAMPUPQTY%TYPE ,
        ramp_up_date   IN RFQ_PARTS.RFQPARTS_RAMPUPDATE%TYPE ,
        full_prod_qty  IN RFQ_PARTS.RFQPARTS_FULLQTY%TYPE ,
        full_Prod_date IN RFQ_PARTS.RFQPARTS_FULLDATE%TYPE ,
        proto_qty      IN RFQ_PARTS.RFQPARTS_PROTOQTY%TYPE ,
        proto_date     IN RFQ_PARTS.RFQPARTS_PROTODATE%TYPE ,
        pre_serie_qty  IN RFQ_PARTS.RFQPARTS_PRESERIEQTY%TYPE ,
        pre_serie_date IN RFQ_PARTS.RFQPARTS_PRESERIEDATE%TYPE)
    et voici son appel
    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
     
    SAVEITEMADDITION(   6
                      , 6
                      , 6
                      , 6
                      , 'comments RFQ_PARTS.RFQPARTS_COMMENTS%TYPE'
                      , 6
                      , 6
                      , NULL
                      , 6
                      , NULL
                      , 6
                      , NULL 
                      , 6
                      , NULL);
    Dans un premier temps, veuillez compter le nombre de paramètres dans la création de la procédure et dans l'appel de celle-ci !!! cela semble ne pas être le même

    Dans un second temps, veuillez vérifier que les paramètres transmis dans l'appel coïncident avec leur type correspondant défini dans la procédure.

    Il semblerait aussi que vous avez mal recopié le paramètre numéro 7 (catalog_part)

    Bien respectueusement

    Mohamed Houri

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/07/2009, 17h16
  2. [PHP MySQL] Erreur execution requête de type INSERT
    Par Pfeffer dans le forum Requêtes
    Réponses: 6
    Dernier message: 23/01/2006, 17h38
  3. après envois formulaire execute procedure
    Par alexmorel dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/12/2005, 22h54
  4. Réponses: 18
    Dernier message: 10/12/2005, 01h19
  5. [Ant]Erreur execution d'une tache ANT
    Par gerin dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 11/05/2004, 16h59

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