create or replace procedure "FINDMAX"
(maxroll OUT NUMBER)
is
begin
select max(rollno) into maxroll from std;
end;
在这段代码maxroll我采取了制作程序和rollno我把它作为数据库字段。这给了我表中的最大(最后)卷号。 任何人都可以建议我如何获得下一卷数(最大+ 1)?
答案 0 :(得分:1)
对于您的直接问题,您可以使用max(col) + 1
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;
然后在使用roll_no_seq.nextval
答案 1 :(得分:0)
使用SEQUENCE
。
CREATE SEQUENCE rollno_seq
START WITH 1
INCREMENT BY 1
NOCACHE
NOCYCLE;
然后你可以使用,
select rollno_seq.nextval from dual;