如何将序列中的下一个值放入变量中?

Posted

技术标签:

【中文标题】如何将序列中的下一个值放入变量中?【英文标题】:How do you get the next value in a sequence into a variable? 【发布时间】:2011-06-14 01:34:32 【问题描述】:

所以我正在编写一个存储过程,并且无法将序列的下一个值放入变量中。

序列名称被传递到函数中并存储为varchar2 变量。如何将该序列中的下一个值放入局部变量中。

【问题讨论】:

【参考方案1】:

这样的?

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;

【讨论】:

你也可以运行EXECUTE IMMEDIATE 'BEGIN :ret := '||p_sequence_name||'.nextval; END;' USING OUT v_nextval;

以上是关于如何将序列中的下一个值放入变量中?的主要内容,如果未能解决你的问题,请参考以下文章