Oracle11g 使用Oracle过程从表中获取下一个卷号

Oracle11g 使用Oracle过程从表中获取下一个卷号,oracle11g,Oracle11g,在这段代码中,maxroll用于生成过程,rollno用作数据库字段。这给了我表中的最大(最后)卷数。 有谁能建议我如何获得下一个卷号(最大+1)吗?请使用 然后你可以用 CREATE SEQUENCE rollno_seq START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE; 另请参见,对于您眼前的问题,您可以使用max(col)+1 select rollno_seq.nextval from dual; 但

在这段代码中,maxroll用于生成过程,rollno用作数据库字段。这给了我表中的最大(最后)卷数。 有谁能建议我如何获得下一个卷号(最大+1)吗?

请使用

然后你可以用

CREATE SEQUENCE rollno_seq
    START WITH     1
    INCREMENT BY   1
    NOCACHE
    NOCYCLE;

另请参见,

对于您眼前的问题,您可以使用
max(col)+1

select rollno_seq.nextval from dual;
但是,如果您在插入下一条记录时要使用它,那么这不是正确的方法

你应该改为使用序列

create or replace procedure "FINDMAX"
(maxroll OUT NUMBER)
is
begin
  select 1 + max(rollno) into maxroll from std;
end;​

然后在插入时使用它,使用
roll\u no_seq.nextval

感谢您的帮助。工作。
create or replace procedure "FINDMAX"
(maxroll OUT NUMBER)
is
begin
  select 1 + max(rollno) into maxroll from std;
end;​
create sequence roll_no_seq start with 1 increment by 1;