Bonjour,

j'utilise un paramètre REF CURSOR OUT sur une procédure stockée. Lorsque je remplit ce curseur avec une table de la base tout fonctionne mais lorsque que je veux le remplir avec un objet de type is table of record, cela ne fonctionne pas.

Un petit exemple :

Package 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
 
CREATE OR REPLACE PACKAGE ADM.packagecrystal
AS
   TYPE curseurtype IS REF CURSOR;
 
   TYPE envoi IS RECORD (
      dtetlr      histo_envoi.dtetlr%TYPE,
      ptrcod      histo_envoi.ptrcod%TYPE,
      mesurej     histo_envoi.mesure%TYPE,
      mesurem     histo_envoi.mesure%TYPE,
      maxdatej    histo_envoi.dtemaj%TYPE,
      maxdatem    histo_envoi.dtemaj%TYPE,
      absenvoij   NUMBER (1),
      absenvoim   NUMBER (1)
   );
 
   TYPE tableenvoi IS TABLE OF envoi
      INDEX BY BINARY_INTEGER;
 
   PROCEDURE proceduref01e1 (
      retour   OUT   packagecrystal.curseurtype
   );
END packagecrystal;
/
package :

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
 
CREATE OR REPLACE PACKAGE BODY adm.packagecrystal
AS
 
   PROCEDURE proceduref01e1 (retour OUT packagecrystal.curseurtype)
   IS
   BEGIN
      DECLARE
         resultat       packagecrystal.tableenvoi;
-------------------------
-- Remplissage de resultat
-------------------------
      OPEN retour FOR
           select *
           FROM resultat;  -- Ceci ne fonctionne pas
   END;
END packagecrystal;
/
Ya t'il un moyen de régler ce problème?
Merci

Jean