程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> oracel-如何把下面的oracle中的存儲過程轉換成sql的?

oracel-如何把下面的oracle中的存儲過程轉換成sql的?

編輯:編程綜合問答
如何把下面的oracle中的存儲過程轉換成sql的?

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:以上內容,純當參考,

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved