snd*_*eli 0 oracle view parameterized
我有一个这样的查询
SELECT ID,REF_ID,BATCHNO FROM reporttbl
where POSTING_DT >= '06/01/2020' and POSTING_DT <= '06/30/2020'
Run Code Online (Sandbox Code Playgroud)
我每个月都需要它,所以我想把它放在一个视图中,但是随着日期每个月都在变化,如果有一个日期参数可以在调用它时传递给视图,那就太好了。有什么办法可以实现这一目标吗?我是 oracle 的新手,感谢每一个帮助。谢谢你。
从 19.6 开始,您可以使用SQL 宏创建参数化视图。
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
Run Code Online (Sandbox Code Playgroud)