2017-02-12 5 views
0
create or replace procedure "FINDMAX" 
(maxroll OUT NUMBER) 
is 
begin 
select max(rollno) into maxroll from std; 
end;​ 

в этом коде maxroll я взял, чтобы сделать процедуру, и rollno я взял ее как поле базы данных. Это дает мне максимальное (LAST) количество рулонов из таблицы. Может ли кто-нибудь предложить мне, как я могу получить следующий номер рулона (max + 1)?Получить следующий номер рулона из таблицы с помощью Oracle Процедура

ответ

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

+0

Цените вашу помощь. За работой. –