繁体   English   中英

在调用用户定义的 function 时将不同的日期作为参数传递,并在 oracle 中使用循环

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM