create or replace procedure BJ_MAXCASENO_Get(InCount in number,
OutMaxCaseNO out number) as
tem number;
begin
select max(caseno) into tem from BJ_MAXCASENO;
if tem is null then
tem := 0;
-- 沒有數據時新增0進入
insert into BJ_MAXCASENO (CASENO) VALUES (0);
end if;
tem := tem + InCount;
update BJ_MAXCASENO set CaseNO = tem;
OutMaxCaseNO := tem;
end BJ_MAXCASENO_Get;
你這個邏輯即需要insert,又需要update,即需要輸入參數,又有輸出參數,通過sql是沒法寫出的.
從你的存過分析來看,你只是對BJ_MAXCASENO表的max(CASENO)+InCount做更新和查詢操作,
可以考慮以下這種實現方式:如果是空則新增0近入,如果非空,也新增一條max(caseno)+'InCount'近入,insert into BJ_MAXCASENO
(CASENO)
select (case
when max(CASENO) is null then
0
else
max(CASENO) + 'InCount'
end) as CASENO
from BJ_MAXCASENO;
當然查詢最大值就又得需要一條查詢sql語句:select max(caseno) from BJ_MAXCASENO
PS:以上內容,純當參考,