J'utilise une procédure stockée pour sélectionner des enregistrements à l'aide d'un curseur. Cette procédure obtient l'ID d'enregistrement en entrée.Requête dynamique dans la procédure Oracle à l'aide du curseur
Voici le code:
create or replace
procedure GET_ITEM_DETAILS_ALL
(
cur_out out sys_refcursor,
PSTRING VARCHAR2 DEFAULT NULL
)
is
query_string VARCHAR2(1000);
Begin
query_string := 'Select IT.SL_NO from ITEM_DETAILS IT where IT.SL_NO in (:sl) order by IT.SL_NO';
OPEN cur_out FOR query_string USING PSTRING;
End;
Et pour appeler/tester la procédure que j'utilise le code ci-dessous:
VAR R REFCURSOR
EXEC GET_ITEM_DETAILS_ALL (:R, '4')
PRINT R
Le problème est quand je passe un seul numéro entier tel que « 4 'ou' 2 ', la procédure retourne des données, mais quand je passe' 1,2 'ou' 3,4 ', elle montre une erreur.