create or replace function my_lostday(
t_taskid in varchar2)
return varchar2 as
result varchar2(5);
finish varchar2(5); --標識預警,黃牌,紅牌
t_taskreducedate date;
--查詢正在進行中的階段的時間
cursor cur_enddate is
select r.enddate
from t_business_task_reduce r, t_business_task t
where r.taskid = t.id
and t.id=t_taskid
and r.isfinishstate='1';
begin
finish:=0;
open cur_enddate; --開啟游標
loop
fetch cur_enddate --遍歷
into t_taskreducedate;
exit when cur_enddate%notfound; --當游標為空跳出
--當前時間沒有階段結束的
if(trunc(sysdate-t_taskreducedate)<=0) then
if finish!=0 then
finish:=finish;
end if;
if finish=0 then
finish:=0;
end if;
end if;
--預警
if(trunc(sysdate-t_taskreducedate)>0) and (trunc(sysdate-t_taskreducedate)<=3) then
if finish>=2 then
finish:=finish;
end if;
if finish<2 then
finish := 1;
end if;
end if;
--黃牌
if(trunc(sysdate-t_taskreducedate)>3) and (trunc(sysdate-t_taskreducedate)<=8) then
if finish>=3 then
finish:=finish;
end if;
if finish<3 then
finish := 2;
end if;
end if;
--紅牌
if(trunc(sysdate-t_taskreducedate)>8) then
finish := 3;
end if;
end loop;
close cur_enddate; --關閉游標
result:=finish;
return(result);
end my_lostday;
Oracle自定義函式
語法如下 create or replace function function name argment type,argment type return return type 返回資料的型別 變數的申明,比如 stryuan varchar2 150 begin function body 函...
oracle 自定義函式
下面是乙個前輩寫的判斷是否是手機號的函式 create or replace function ismobile pmsg varchar2 return number isvprefix varchar2 20 vlen number begin vlen lengthb pmsg if vlen...
Oracle自定義函式
二 刪除自定義函式 三 應用經驗 在oracle資料庫中,為了實現特定的功能,可以自定義函式,就像c c 語言,除了系統的庫函式,程式設計師還會編寫很多自定義的函式。create or replace function 函式名 引數1 模式 資料型別,return 資料型別 as 定義區域性變數。變...