How do you get the next value in a sequence into a variable?

20,161

Something like this?

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;
Share:
20,161
user439199
Author by

user439199

Updated on August 04, 2022

Comments

  • user439199
    user439199 over 1 year

    So I'm writing a stored procedure and am having trouble getting the next value of a sequence into a variable.

    The sequence name is passed into the function and is stored as a varchar2 variable. How can you get the next value in that sequence into a local variable.

  • Wernfried Domscheit
    Wernfried Domscheit over 5 years
    You can also run EXECUTE IMMEDIATE 'BEGIN :ret := '||p_sequence_name||'.nextval; END;' USING OUT v_nextval;