场景:
        不同的单据根据日期和单据流水自动生成顺序的单号。

解决办法:

(原)用于 Oracle 自动创建单号的存储过程create or replace procedure proc_id_builder(id varchar2, sn out varchar2AS
(原)用于 Oracle 自动创建单号的存储过程  rowt 
int;
(原)用于 Oracle 自动创建单号的存储过程  upperID 
varchar2(64);
(原)用于 Oracle 自动创建单号的存储过程
begin
(原)用于 Oracle 自动创建单号的存储过程upperID :
= upper(id);
(原)用于 Oracle 自动创建单号的存储过程  
select count(*into rowt from ts_parameter where parameterid = upperID;
(原)用于 Oracle 自动创建单号的存储过程  
if rowt = 0 then
(原)用于 Oracle 自动创建单号的存储过程    sn :
= to_char(sysdate, 'YYMMDD'|| '000001';
(原)用于 Oracle 自动创建单号的存储过程    
insert into ts_parameter values (upperID, sn, '');
(原)用于 Oracle 自动创建单号的存储过程    
commit;
(原)用于 Oracle 自动创建单号的存储过程    
return;
(原)用于 Oracle 自动创建单号的存储过程  
end if;
(原)用于 Oracle 自动创建单号的存储过程
(原)用于 Oracle 自动创建单号的存储过程  
select parametervalue into sn from ts_parameter where parameterid = upperID for update;
(原)用于 Oracle 自动创建单号的存储过程
(原)用于 Oracle 自动创建单号的存储过程  
if substr(sn, 16> to_char(sysdate, 'YYMMDD'then
(原)用于 Oracle 自动创建单号的存储过程    sn :
= '';
(原)用于 Oracle 自动创建单号的存储过程    
return;
(原)用于 Oracle 自动创建单号的存储过程  
end if;
(原)用于 Oracle 自动创建单号的存储过程  
--生成单号
(原)用于 Oracle 自动创建单号的存储过程
  if substr(sn, 16< to_char(sysdate, 'YYMMDD'then
(原)用于 Oracle 自动创建单号的存储过程    sn :
= lpad(to_char(sysdate, 'YYMMDD'|| '000001',12,'0');
(原)用于 Oracle 自动创建单号的存储过程  
else
(原)用于 Oracle 自动创建单号的存储过程    sn :
= lpad(to_char(to_number(sn) + 1),12,'0');
(原)用于 Oracle 自动创建单号的存储过程  
end if;
(原)用于 Oracle 自动创建单号的存储过程  
--更新单号
(原)用于 Oracle 自动创建单号的存储过程
  update ts_parameter set parametervalue = sn where parameterid = upperID;
(原)用于 Oracle 自动创建单号的存储过程  
commit;
(原)用于 Oracle 自动创建单号的存储过程
(原)用于 Oracle 自动创建单号的存储过程EXCEPTION
(原)用于 Oracle 自动创建单号的存储过程  
WHEN OTHERS THEN
(原)用于 Oracle 自动创建单号的存储过程    
ROLLBACK;
(原)用于 Oracle 自动创建单号的存储过程    lfguser.proc_log_ora_exception(p_err_Num 
=> SQLCODE,
(原)用于 Oracle 自动创建单号的存储过程                                   p_err_Msg 
=> SQLERRM,
(原)用于 Oracle 自动创建单号的存储过程                                   p_err_Source 
=> 'proc_ticketid_builder');
(原)用于 Oracle 自动创建单号的存储过程
end;
(原)用于 Oracle 自动创建单号的存储过程

相关文章:

  • 2022-01-01
  • 2021-09-19
  • 2022-12-23
  • 2022-12-23
  • 2021-11-28
  • 2021-09-09
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-28
  • 2021-12-24
  • 2022-12-23
  • 2021-11-30
相关资源
相似解决方案