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 :

BULK COLLECT ==> TYPE TABLE OF (Cursor Rowtype)


Sujet :

Oracle

  1. #1
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut BULK COLLECT ==> TYPE TABLE OF (Cursor Rowtype)
    Oracle : 8.1.7
    Unix : HP/UX B11

    J'essaye de Faire la manip suivante : Faire un BULK COLLECT Vers Un TYPE basé sur un Curseur

    Mais Msieur Oracle n'est pas d'accord : Avez vous une idée



    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
      1  Declare
      2
      3     /**********************************************************************/
      4     /*      Extraction des Commandes d'une Cliente                        */
      5     /**********************************************************************/
      6     Cursor Cur_temp_cde (w_pays varchar2, w_client varchar2 ,w_date_lim date) IS
      7     select
      8     pay_cd, cde_no, cli_no, pla_cde,
      9     mai_cd, cde_dt_facture
     10     from COMMANDE
     11     WHERE CLI_PAY_CD = w_pays
     12     AND CLI_NO = w_client
     13     AND CDE_DT_FACTURE >= w_date_lim
     14     order by CDE_DT_FACTURE DESC;
     15
     16     TYPE TYP_TAB_CDE IS TABLE OF Cur_temp_cde%ROWTYPE;
     17
     18     t_rec TYP_TAB_CDE;
     19
     20  Begin
     21      OPEN Cur_temp_cde ('001','12345789',sysdate - 1000);
     22      loop
     23         ---------------------------------------------------------
     24         --
     25         ---------------------------------------------------------
     26         FETCH Cur_temp_cde BULK COLLECT into t_rec LIMIT 15;
     27         For i In t_rec.first..t_rec.last Loop
     28              -- Insertion Dans Commande_bis
     29              null;
     30         End loop ;
     31         Exit When Cur_Temp_Cde%NOTFOUND ;
     32      end loop;
     33* End;
    /
    L'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SQL> /
           FETCH Cur_temp_cde BULK COLLECT into t_rec LIMIT 15;
                                                *
    ERREUR à la ligne 26 :
    ORA-06550: Ligne 26, colonne 45 :
    PLS-00597: l'expression 'T_REC' dans la liste INTO est de type incorrect
    ORA-06550: Ligne 26, colonne 8 :
    PL/SQL:SQL Statement ignored
    Merci de votre aide
    Signé : Capitaine Jean-Luc Picard

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    A mon avis, tu dois créer un objet contenant les 6 colonnes et c'est un tableau de cet objet que tu pourras manipuler

  3. #3
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    BULK COLLECT n'accepte les tableaux d'enregistrements que depuis la version 9i.
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  4. #4
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    Citation Envoyé par SheikYerbouti
    BULK COLLECT n'accepte les tableaux d'enregistrements que depuis la version 9i.
    Est-ce à dire que ce bout de code est correctement écrit (avec la 9i) :
    Signé : Capitaine Jean-Luc Picard

  5. #5
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Citation Envoyé par argoet
    Citation Envoyé par SheikYerbouti
    BULK COLLECT n'accepte les tableaux d'enregistrements que depuis la version 9i.
    Est-ce à dire que ce bout de code est correctement écrit (avec la 9i) :
    Oui il semble correct.
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  6. #6
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    OK : Merci à vous pour votre Aide
    [Résolu]
    Signé : Capitaine Jean-Luc Picard

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

Discussions similaires

  1. [10gR2] BULK COLLECT - CURSOR dans %TYPE %ROWTYPE
    Par noisettes38 dans le forum PL/SQL
    Réponses: 7
    Dernier message: 16/07/2014, 23h17
  2. Création d'un nouveau type: table of et %Rowtype
    Par wangying dans le forum PL/SQL
    Réponses: 1
    Dernier message: 01/02/2013, 09h32
  3. capacité de stockage des types table et cursor
    Par zinzineti dans le forum Administration
    Réponses: 0
    Dernier message: 26/11/2010, 16h36
  4. Les collections de type nested table
    Par romuald07 dans le forum PL/SQL
    Réponses: 7
    Dernier message: 31/07/2008, 11h08
  5. Jointure de 2 tables dans un bulk collect
    Par bon4000 dans le forum SQL
    Réponses: 11
    Dernier message: 07/01/2008, 19h02

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