Passage de paramètre dans un curseur pour une clause WHERE IN
Bonjour,
j'aurais besoin de votre aide pour un bloc PL/SQL.
Je souhaiterais envoyer en paramètre dans un de mes curseur un liste d'identifiant de dossier (ex: 34574,45678,56574 ...).
J'ai essayé d'envoyé un varchar2 contenant ma liste de dossiers séparé par une virgule, mais évidement sa ne marche pas.
Si vous avez des idée, je suis preneur :).
Voici mon code de test actuel:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
SET serveroutput on
declare
Cursor curs_dossier (ids varchar2) is Select * from DOSSIER where id_dossier in (ids);
line DOSSIER%rowtype;
begin
dbms_output.enable;
Open curs_dossier('46389,46390');
fetch curs_dossier into line;
if(curs_dossier%FOUND) then
dbms_output.put_line('Yes');
else
dbms_output.put_line('No');
end if;
end; |
PS: il faudrait que se soit compatible Oracle 9i.
Autre question, est il plus performant de réaliser un gros Select avec une grande claude Where IN ou plusieurs Select avec un identifiant ?
Merci d'avance de votre aide.