所以我正在编写一个存储过程,并且无法将序列的下一个值转换为变量。
序列名称传递给函数并存储为varchar2
变量。如何将该序列中的下一个值转换为局部变量。
答案 0 :(得分:13)
这样的东西?
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;