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:
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:
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