[PL/SQL][Oracle9] Retour de curseur avec du Sql dynamique
Bonjour,
je dois créer une procédure stockée dynamique qui me retourne en paramètre de sortie un curseur.
J'ai d'abord fait un test sans Sql dynamique qui fonctionne très bien :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
CREATE OR REPLACE PROCEDURE PS_GET_DETAILS_LOCALISATION
(NOM_TABLE IN VARCHAR2,
ID_TABLE IN VARCHAR2,
io_cursor OUT LP_LOCALISATION.C_ST_LOCALISATION )
AS
BEGIN
OPEN io_cursor FOR
SELECT ID, CODE, DESI FROM VW_LOCALISATION_UP
WHERE ID = TO_NUMBER(ID_TABLE);
END; |
Maintenant je souhaite réaliser la même chose avec un nom de vue dynamique :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
CREATE OR REPLACE PROCEDURE PS_GET_DETAILS_LOCALISATION
(NOM_TABLE IN VARCHAR2,
ID_TABLE IN VARCHAR2,
io_cursor OUT LP_LOCALISATION.C_ST_LOCALISATION )
AS
vlStr VARCHAR2(500) ;
BEGIN
vlStr := ' OPEN io_cursor FOR ' ;
vlStr := vlStr || ' SELECT ID, CODE, DESI ' ;
vlStr := vlStr || ' FROM VW_LOCALISATION_' || NOM_TABLE ;
vlStr := vlStr || ' WHERE ID = TO_NUMBER(' || ID_TABLE || ')' ;
?????????????????
END; |
Que mettre à la place de ?????
J'ai essayé un execute immediate, DBMS_SQL.PARSE mais ça ne marche pas j'ai toujours une erreur au moment de l'exécution.
Merci par avance de votre aide.