[英]passing different date as parameter in calling a user defined function with a loop in oracle
假設我有一個用戶定義的 function 以日期為參數,即 to_date,from_date 但它有一個限制,它可以提供最大限制為三個月的數據,但我需要一年的數據,我應該怎么做.. function
select *
from table(height_DOL.DOL_PKG_DATA.FN_GET_height_DATA(IN_FROM_EFFECTIVE_DATE => '11-JAN-20',IN_TO_EFFECTIVE_DATE => '11-APR-20'));
借助 oracle 中的循環
如果無法更改 function,則可以使用UNION
:
select *
from table(height_DOL.DOL_PKG_DATA.FN_GET_height_DATA(IN_FROM_EFFECTIVE_DATE => '11-JAN-20',IN_TO_EFFECTIVE_DATE => '11-APR-20'))
UNION ALL
select *
from table(height_DOL.DOL_PKG_DATA.FN_GET_height_DATA(IN_FROM_EFFECTIVE_DATE => '11-APR-20',IN_TO_EFFECTIVE_DATE => '11-JUN-20'))
UNION ALL
...
...
這是一種可用於過濾 1 年數據的方法-
SELECT *
From T
WHERE date_column > DATEADD(year,-1,GETDATE())
或這個
select *
from
height_DOL.DOL_PKG_DATA.FN_GET_height_DATA
where IN_FROM_EFFECTIVE_DATE => '11-JAN-20' and IN_TO_EFFECTIVE_DATE <= '11-APR-20';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.