Bonsoir,
le code suivant permet de déclarer un curseur et faire la sélection de la table "bulletin"
je cherche à utiliser le ref cursor.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Declare cursor sel_bulletin( this_cod_co in number , this_num_bulletin in varchar2 ) is select cod_bulletin from bulletin where cod_co = this_cod_co and num_bulletin = this_num_bulletin; Begin open sel_bulletin( g_Cod_CO, s_num_bulletin ); fetch sel_bulletin into n_cod_Bulletin;
ci-dessous une procédure que j'ai créée, le curseur fera la sélection selon le contenu de la variable "P_debug", si elle est true la sélection sera à partir de la table temporaire "tmp_bulletin", sinon la sélection sera à partir de la table "Bulletin"
le problème, c'est que je n'arrive pas à appeler cette procédure dans la partie du code N°1 pour que si je suis en mode debug je fais la sélection depuis la table "tmp_bulletin" si non je le fais de la table "bulletin", la syntaxe que j'ai utilisée n'était pas correcte, il y a toujours des erreurs et je suis bloqué.
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 create or replace procedure z_test_refcursor( p_Debug boolean default false ) is TYPE RefCur_Bulletin IS REF CURSOR RETURN Bulletin%ROWTYPE; c_cursor RefCur_Bulletin; rec_bulletin c_cursor%rowtype; p_cod_co number := 12; begin -- -- Open Cursor par sélection -- If ( p_Debug ) Then open c_cursor for select * from tmp_bulletin where cod_co = p_cod_co; Else open c_cursor for select * from bulletin where cod_co = p_cod_co; end If; -- -- loop fetch c_cursor into rec_bulletin; exit when c_cursor%notfound; dbms_output.put_line( rec_bulletin.num_bulletin ); end loop; -- -- Fermeture du cursor close c_cursor; End;
votre aide sera fortement appréciée.
Merci.
Partager