Search code examples
oracle-databasesqlplussequences

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


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.


Solution

  • 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;