Bonjour à tous,

Je cherche à créer une procédure qui me renvoit le contenu d'un select. Le contenu peut être nul, une ligne ou plusieurs lignes. Cette procédure reçoit un id et puis retourne le contenu du select en plus des variables de message d'échec ou de réussite. J'utilise Oracle 10g R2.

Voici la procédure,

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
PROCEDURE comm_op_range(
                                        vi_op_id         IN NUMBER,
                                        vo_cur           OUT sys_refcursor,
                                        vo_ok            OUT NUMBER,
                                        vo_error_num  OUT NUMBER,
                                        vo_error_msg  OUT VARCHAR2)
IS
 
sel_comm_error  EXCEPTION;
 
BEGIN
OPEN vo_cur FOR
SELECT * FROM TABLE
WHERE TABLE.ID = vi_op_id
Donc le retour du select est renvoyé au programme appelant. Mais ici, si j'ai bien compris on ne peut pas retourner un curseur null. Alors l'utilisateur reçoit le message ORA-01001 Invalid cursor. J'aimerais pouvoir gérer tout les cas et ainsi si c'est nul retourner à la variable vo_error_msg "Invalid ID" par exemple.

Merci.