简体   繁体   English

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

[英]passing different date as parameter in calling a user defined function with a loop in oracle

let say I have a user defined function which take date as parameter ie to_date,from_date but it has a limitation that it can provide data of maximum limit of three months but I need data of one year how I am suppose to do that.. function假设我有一个用户定义的 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')); 

with the help of loop in oracle借助 oracle 中的循环

You can use UNION if you can not change the function:如果无法更改 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
...
...

This is an approach what can be used to filter down 1 year data-这是一种可用于过滤 1 年数据的方法-

SELECT *
From T
WHERE date_column > DATEADD(year,-1,GETDATE())

Or This或这个

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