Bonjour,

Je voudrais récupérer un numéro de séquence et l'insérer dans une table dans un champs de type varchar. Je voudrais savoir quelle serait la plus appropriée parmi les 2 solutions proposées ci-dessous.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
CREATE OR REPLACE FUNCTION GET_SEQ_GROUP_ENT(SEQ_NAME IN VARCHAR2) AS
DECLARE
    seq_out NUMBER;
BEGIN
    EXECUTE IMMEDIATE 'SELECT ' || SEQ_NAME || '.NEXTVAL from dual' INTO seq_out;
    RETURN seq_out;
END;
ou

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
create or replace procedure next_val (p_sequence_name varchar2)
as
 
v_nextval integer;
v_select varchar2(100);
 
begin
 
v_select := 'select '||p_sequence_name||'.nextval from dual';
 
execute immediate v_select into v_nextval;
 
dbms_output.put_line('Nextval is: '||TO_CHAR(v_nextval));
 
end;
Merci,