下面二个过程占用锁资源多,还是 基本上没有区别,现在讨论的是这二个过程,请不要说用的别的功能实现
CREATE OR REPLACE PROCEDURE TL_GetNewSheetid1
(
v_shopid in varchar2,
v_serialnumberid in varchar2,
v_sheetid out varchar2
) as
begin
    update serialnumber set seq =seq +1 where  serialnumberid=v_serialnumberid ;
    select v_shopid||to_char(seq) into v_sheetid from serialnumber  where  serialnumberid=v_serialnumberid ;
end ;
CREATE OR REPLACE PROCEDURE TL_GetNewSheetid2
(
v_shopid in varchar2,
v_serialnumberid in varchar2,
v_sheetid out varchar2
) as
row_serialnumber serialnumber%rowtype ;
begin
    select *  into row_serialnumber   from serialnumber  where  serialnumberid=v_serialnumberid for update ;
    update serialnumber set seq =seq +1 where  serialnumberid=v_serialnumberid ;
    select v_shopid||to_char(seq) into v_sheetid from serialnumber  where  serialnumberid=v_serialnumberid ;
end ;