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 :
Maintenant je souhaite réaliser la même chose avec un nom de vue dynamique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Que mettre à la place de ?????
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 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;
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.
Partager