oracle:自定义函数
生活随笔
收集整理的這篇文章主要介紹了
oracle:自定义函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
CREATE OR REPLACE FUNCTION GETDAY_HLastDAY (D_Stand_Date date)return Date asD_Return Date; /*返回的日期*/beginD_Return := D_Stand_Date;/*如果當天是工作日,下一天也是工作日*/if (isholiday('XSHE',D_Stand_Date)=0 AND isholiday('XSHE',getday_hday('CN',D_Stand_Date,1, 'D'))=0) thenreturn D_Return;end if;while (true) loopD_Return := D_Return + 1;/*如果是節假日的最后一天*/if (isholiday('XSHE',D_Return)=1 AND isholiday('XSHE',getday_hday('CN',D_Return,1, 'D'))=0) thenexit; /*退出循環*/end if; -- if then 表示開始, end if;表示結束,要成對出現end loop;return D_Return;-- 異常處理,捕捉異常exception when others then D_Return := D_Stand_Date;return D_Return;end; -- 結束的end要加上分號?
?oracle中使用if ?then ?elsif ?then end if
CREATE OR REPLACE FUNCTION GETFJKMBYMAP ( var_len IN NUMBER, -- 長度var_fjjdm IN VARCHAR2, -- 組合代碼var_Km_Code IN VARCHAR2 -- 4.5父級科目代碼 ) return VARCHAR2 isR_FJ_KM VARCHAR2(50); -- 3.0父級科目R_KM VARCHAR2(50); beginbeginselect facctcode into R_KM from md_km_map a where a.fjjdm = var_fjjdm and substr(c_km_code,0,var_len) = var_Km_Codeand trim(facctcode) is not null and rownum = 1;exception when no_data_foundthen R_FJ_KM := var_Km_Code;end;beginif (var_len = 4) thenR_FJ_KM := substr(R_KM,0,4); -- 1級elsif (var_len = 7) then -- 2級R_FJ_KM := substr(R_KM,0,6);elsif (var_len = 10) then -- 3級R_FJ_KM := substr(R_KM,0,8);elsif (var_len = 13) then -- 4級R_FJ_KM := substr(R_KM,0,10);elsif (var_len = 17) then -- 4級R_FJ_KM := substr(R_KM,0,13);elseR_FJ_KM := var_Km_Code;end if;exception when no_data_foundthen R_FJ_KM := var_Km_Code; end;return R_FJ_KM;end GETFJKMBYMAP;?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的oracle:自定义函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java- 和 || 优先级的问题
- 下一篇: oracle:SAVEPOINT(保存点