我有一个这样的查询
SELECT ID,REF_ID,BATCHNO FROM reporttbl
where POSTING_DT >= '06/01/2020' and POSTING_DT <= '06/30/2020'
我每个月都需要它,所以我想将它放在视图中,但随着日期每个月都在变化,如果有一个日期参数,我可以在调用它时传递给视图,那就太好了。有什么方法可以实现这一点吗?
我是 oracle 的新手,感谢每一个帮助。谢谢你。
从 19.6 开始,您可以使用以下命令创建参数化视图SQL宏 https://blog.sqlora.com/en/parameterized-views-in-oracle-no-problem-with-sql-macros/.
create or replace function get_month (
tab dbms_tf.table_t, start_date date, end_date date
) return varchar2 sql_macro as
retval int;
begin
return 'select * from tab
where dt >= start_date and dt < end_date + 1';
end get_month;
/
create table t (
c1 int, dt date
);
insert into t
with rws as (
select level c1, add_months ( date'2019-12-25', level ) dt
from dual
connect by level <= 10
)
select * from rws;
select * from get_month (
t, date'2020-06-01', date'2020-07-01'
);
C1 DT
6 25-JUN-2020 00:00:00
select * from get_month (
t, date'2020-08-01', date'2020-09-01'
);
C1 DT
8 25-AUG-2020 00:00:00
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)