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 :

Utilisation d'un type tableau dans une procedure PL/SQL [11g]


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 31
    Points
    31
    Par défaut Utilisation d'un type tableau dans une procedure PL/SQL
    Bonjour,

    J'ai besoin de passer à une procédure oracle le contenu d'un fichier (après contrôles) sous forme d'un tableau pour les insérer dans une table Oracle JOURNAL_OPERATION_CHANGE.
    Pour ce faire j'ai créé le package suivant:

    Entete:
    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 PACKAGE CHMCR.PACK_CHM_CR
    IS
       TYPE fichier_CR_TYPE IS TABLE OF JOURNAL_OPERATION_CHANGE%ROWTYPE index by binary_integer;
     
       --
       PROCEDURE CHARGEMENT_CR(
                                                                  P_FICHIER_CR                       IN OUT FICHIER_CR_TYPE,
                                                                  p_nom_fichier                        IN        VARCHAR2,                                         
                                                                  p_id_chargement                       OUT NUMBER,
                                                                  NMES                                        OUT NUMBER,
                                                                  LMES                                        OUT VARCHAR2);
    END PACK_CHM_CR;
    /
    Body:

    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
    CREATE OR REPLACE PACKAGE BODY CHMCR.PACK_CHM_CR
    IS
     
    PROCEDURE CHARGEMENT_CR(
                                                                  P_FICHIER_CR                       IN OUT CHMCR.PACK_CHM_CR.FICHIER_CR_TYPE,
                                                                  p_nom_fichier                        IN        VARCHAR2,                                     
                                                                  p_id_chargement                       OUT NUMBER,
                                                                  NMES                                        OUT NUMBER,
                                                                  LMES                                        OUT VARCHAR2)
    Is
      p_date_chargement  DATE := sysdate;
    Begin
           p_id_chargement := CHMCR.CHMCR_SQ_ID_CHARGEMENT.NEXTVAL;
           for i in 1..P_FICHIER_CR.last loop
              P_FICHIER_CR.id_cr(i):= CHMCR.CHMCR_SQ_ID_CR.NEXTVAL;
              INSERT INTO JOURNAL_OPERATION_CHANGE
                                           (id_cr, id_chargement, num_autorisation, date_chargement)
                              VALUES  (P_FICHIER_CR.id_cr(i), P_id_chargement, P_FICHIER_CR.num_autorisation(i), p_date_chargement);
               i := i + 1;
           End loop;
           commit;
     
    END;
     
    END PACK_CHM_CR;
    /
    Probleme:

    Lors de la compilation du body j'ai les messages d'erreur suivants:

    [Error] PLS-00302 (15: 24): PLS-00302: Le composant 'ID_CR' doit être déclaré
    [Error] PLS-00302 (15: 24): PLS-00302: Le composant 'num_autorisation' doit être déclaré

    Je ne vois pas où est le probleme!
    Quelqu'un peut m'aider SVP?

    Mercii

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 36
    Points : 31
    Points
    31
    Par défaut
    Ouppps j'ai trouvé.
    Pour referencer l'element de la table il faut mettre P_FICHIER_CR(i).id_cr et non pas P_FICHIER_CR.id_cr(i)

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/03/2013, 16h04
  2. Réponses: 1
    Dernier message: 25/01/2013, 17h25
  3. Réponses: 1
    Dernier message: 20/07/2007, 08h19
  4. type retourné dans une procedure
    Par bouzaidi dans le forum Delphi
    Réponses: 7
    Dernier message: 10/05/2007, 16h07
  5. Le type image dans une procedure stockée
    Par telynor dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 06/02/2007, 16h16

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