Bonjour,

J'ai une fonction stockée qui retourne un curseur. Je souhaite pourvoir retourner une valeur null si rien n'est trouvé. Or j'obtiens systématiquement une erreur ORA-06503: PL/SQL: Function returned without value ORA-06512.

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
 
 FUNCTION nom_fonction(arg1 IN VARCHAR2, aret OUT VARCHAR2) RETURN t_cursor
     AS
        my_cursor t_cursor;
    BEGIN
        aret := 'NOK';
        OPEN my_cursor FOR SELECT * FROM ma_table;  
        aret := SQLCODE ||' - OK';   
 
        EXCEPTION
                WHEN NO_DATA_FOUND
                THEN
                    aret := SQLCODE ||' - NO DATA FOUND ';
                    RETURN NULL;
                WHEN others
                THEN
                aret := SQLCODE ||' - An error was encountered - ERROR - '||SQLERRM;
                RETURN NULL;  
    END nom_fonction;
t_cursor est un type ref cursor.
Comment ne pas générer ce message d'erreur?

Merci