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.




Répondre avec citation






Merci infiniment cela fonctionne parfaitement, je n'aurai jamais pu y arriver sans votre aide !
Partager