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

Oracle Discussion :

Erreur dans fichier de test d'un package


Sujet :

Oracle

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Erreur dans fichier de test d'un package
    Pour tester ma fonction Lister du package, j'ai fait un fichier de test

    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
    DECLARE
    TYPE TablePlanning IS TABLE OF Planning%ROWTYPE INDEX BY BINARY_INTEGER;
    VPlanning TablePlanning;
     
    BEGIN
     
        VPlanning:=GESTIONPLANNING.LISTER (3, 2006);
     
        FOR i IN 1..VPlanning.COUNT LOOP
      DBMS_output.put_line(VPlanning(i).Competition || ' ' || VPlanning(i).Annee || ' ' || 
                VPlanning(i).Course || ' ' || VPlanning(i).Libelle || ' ' || 
                VPlanning(i).Distance || ' ' ||VPlanning(i).Pause);
        END LOOP;
     
    END;
    /
    mais j'obtiens un message d'erreur quand je veux l'utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SQL> @TESTLISTERANNEE
            VPlanning:=GESTIONPLANNING.LISTER (3, 2006);
                       *
    ERREUR à la ligne 7 :
    ORA-06550: Ligne 7, colonne 13 :
    PLS-00382: expression du mauvais type
    ORA-06550: Ligne 7, colonne 2 :
    PL/SQL: Statement ignored
    Dans mon package, j'ai déclaré ma fonction par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FUNCTION LISTER(VCompetition IN Planning.Competition%TYPE, VAnnee IN Planning.Annee%TYPE) RETURN TablePlanning;
    Quelqu'un sait où je me plante dans mon fichier de test? ?(
    Je suppose que c'est avec ma variable ou je mets ce que la fonction renvois, mais que dois-je faire alors?

    Merci d'avance

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Si vous avez 2 définitions de type, 1 dans le package et 1 dans le bloc anonyme de PL/SQL, même si elles sont identiques, on a l'erreur PLS-00382.
    Si vous n'avez qu'une seule définition de type, ça marche en 10.2.0.1.0;

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
     
    SQL> 
    SQL> DROP TABLE Planning;
     
    Table dropped.
     
    SQL> 
    SQL> CREATE TABLE Planning
      2  (
      3           Competition     INTEGER,
      4           Annee         INTEGER,
      5           Course         VARCHAR2(10),
      6           Libelle         VARCHAR2(100),
      7           Distance         INTEGER,
      8           Pause         CHAR
      9  );
     
    Table created.
     
    SQL> 
    SQL> INSERT INTO Planning VALUES (3, 2006, 'C3', 'Course mars 2006', 12, 'O');
     
    1 row created.
     
    SQL> COMMIT;
     
    Commit complete.
     
    SQL> 
    SQL> CREATE OR REPLACE PACKAGE GestionPlanning
      2  AS
      3    TYPE TablePlanning IS TABLE OF Planning%ROWTYPE INDEX BY BINARY_INTEGER;
      4    FUNCTION LISTER(
      5           VCompetition IN Planning.Competition%TYPE,
      6           VAnnee IN Planning.Annee%TYPE) RETURN TablePlanning;
      7  END;
      8  /
     
    Package created.
     
    SQL> show errors
    No errors.
    SQL> 
    SQL> CREATE OR REPLACE PACKAGE BODY GestionPlanning
      2  AS
      3    FUNCTION LISTER(
      4           VCompetition IN Planning.Competition%TYPE,
      5           VAnnee IN Planning.Annee%TYPE) RETURN TablePlanning
      6    IS
      7    vtt TablePlanning;
      8    rp Planning%ROWTYPE;
      9    BEGIN
     10    rp.competition := 3;
     11    rp.annee := 2006;
     12    vtt(1) := rp;
     13    return vtt;
     14    END;
     15  END;
     16  /
     
    Package body created.
     
    SQL> show errors
    No errors.
    SQL> 
    SQL> set serveroutput on
    SQL> 
    SQL> DECLARE
      2  -- TYPE TablePlanning IS TABLE OF Planning%ROWTYPE INDEX BY BINARY_INTEGER;
      3  VPlanning GestionPlanning.TablePlanning;
      4  BEGIN
      5       VPlanning:=GESTIONPLANNING.LISTER (3, 2006);
      6       FOR i IN 1..VPlanning.COUNT LOOP
      7       DBMS_output.put_line('Pour i=' || i || ':');
      8       DBMS_output.put_line(VPlanning(i).Competition || ' ' || VPlanning(i).Annee || ' ' ||
      9           VPlanning(i).Course || ' ' || VPlanning(i).Libelle || ' ' ||
     10           VPlanning(i).Distance || ' ' ||VPlanning(i).Pause);
     11       END LOOP;
     12  END;
     13  /
    Pour i=1:                                                                       
    3 2006                                                                          
     
    PL/SQL procedure successfully completed.
     
    SQL> 
    SQL> exit

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    merci beaucoup, problème résolu

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

Discussions similaires

  1. [hs] installshied 2009 , erreur dans fichier MSI
    Par sivaller dans le forum Autres éditeurs
    Réponses: 0
    Dernier message: 18/02/2011, 18h00
  2. [XCode] SIGABRT erreur dans fichier main.m
    Par kOrt3x dans le forum XCode
    Réponses: 1
    Dernier message: 12/02/2011, 23h21
  3. erreur dans application de test du périphérique
    Par emnag dans le forum Autres éditeurs
    Réponses: 0
    Dernier message: 27/10/2010, 16h41
  4. Erreurs dans fichier de log
    Par guappi dans le forum Administration
    Réponses: 10
    Dernier message: 25/09/2007, 16h26
  5. erreur dans fichier map
    Par sanatou dans le forum C++
    Réponses: 15
    Dernier message: 29/12/2006, 23h04

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