Oui jsais que c'est un sujet qui est revenu maintes et maintes fois sur le tapis...
J'ai parcouru tout developpez.com sans trouver une réponse à ma question. Mais si jamais la réponse est qqe part je vous autorise à me foutre des grands coups de latte dans la gueule. Bref...

2 packages

package1 :
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
 
CREATE OR REPLACE PACKAGE monpackage1 AS
 
     TYPE montype IS TABLE OF VARCHAR2(255) INDEX BY BINARY_INTEGER;
 
     FUNCTION mafonction_pk1 RETURN montype;
 
END monpackage1;
 
CREATE OR REPLACE PACKAGE BODY monpackage1 AS 
 
     FUNCTION mafonction_pk1 RETURN montype IS
          monretour montype;
     BEGIN
          monretour(1) := 'moncontenu1';
          monretour(2) := 'moncontenu2';
          monretour(3) := 'moncontenu3';
          RETURN monretour;
     END mafonction_pk1;
 
END monpackage1;
package2 :
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 monpackage2 AS
 
     TYPE montype IS TABLE OF VARCHAR2(255) INDEX BY BINARY_INTEGER;
 
     PROCEDURE maprocedure_pk2;
 
END monpackage2;
 
CREATE OR REPLACE PACKAGE BODY monpackage2 BODY AS 
 
     PROCEDURE maprocedure_pk2 IS
          mavariable montype;
     BEGIN
          mavariable := monpackage1.mafonction_pk1;
     END mafonction_pk2;
 
END monpackage2;
Impossible de compiler le corps de monpackage2

Je pensais que ça pouvait venir du fait que le moteur prend montype de monpackage1 et montype de monpackage2 pour des types différents mais même en castant avec la formule suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
     mavariable := CAST(monpackage1.mafonction_pk1 AS montype);
...ça marche po...

PleeEaaAse ... *Help*