sql—在oracle中通过循环调用用户定义函数时传递不同的日期作为参数

6tr1vspr  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(303)

假设我有一个用户定义的函数,它以日期为参数,即to,from,但它有一个限制,它可以提供最多三个月的数据,但我需要一年的数据,我该怎么做。。功能

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中的loop

ljsrvy3e

ljsrvy3e1#

你可以用 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
...
...
vfh0ocws

vfh0ocws2#

这是一种可以用来过滤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';

相关问题