Bonjour,
je viens de créer et tester une procédure qui me renvoie un "OUT number"

la voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
CREATE OR REPLACE PROCEDURE getnextval(idval OUT number, nomseq varchar2) IS
BEGIN
execute immediate 'SELECT '||nomseq||'.NEXTVAL FROM DUAL' INTO idval;
END;
jusqu'ici tout va bien.
Mon problème vient lors de l'appel de cette procédure dans une requête :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 INSERT INTO TAB1 (col1, col2,col3)  SELECT * FROM (SELECT var1, var2 ,GETNEXTVAL(idval,'ma_seq') FROM TAB2)
je ne sais pas comment récupérer directement mon "idval OUT" à la place de GETNEXTVAL(...)
Comment dois-je procéder pour l'appel de cette procédure?
des idées ?
Merci d'avance

ps :
l'appel via sqlplus me renvoie "PL/SQL procedure sucexxfully completed", mais n'affiche pas la valeur retournée à l'écran :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
declare
idval number;
begin
getnextval(idval,'ma_seq');
dbms_output.put_line(idval);
end;