У меня есть большой запрос с вложением и левым соединением и Ineed, чтобы создать представление из него, чтобы не запускать его из приложения. Проблема в том, что мне нужен диапазон дат и некоторые другие поля в качестве входных параметров, так как он будет отличаться от переднего конца для каждого запроса.
Я просто посмотрел и увидел несколько сообщений, ссылающихся на использование SYS_CONTEXT для параметризованных представлений и должен точно знать, как создать представление, например, с двумя параметрами - fromdate, todate
и как я вызываю представление из приложения.
Только для информации я использую grails/groovy для разработки приложения. и вот запрос, который я хочу создать из...
select
d.dateInRange as dateval,
eventdesc,
nvl(td.dist_ucnt, 0) as dist_ucnt
from (
select
to_date(fromdate,'dd-mon-yyyy') + rownum - 1 as dateInRange
from all_objects
where rownum <= to_date(fromdate,'dd-mon-yyyy') - to_date(todate,'dd-mon-yyyy') + 1
) d
left join (
select
to_char(user_transaction.transdate,'dd-mon-yyyy') as currentdate,
count(distinct(grauser_id)) as dist_ucnt,
eventdesc
from
gratransaction, user_transaction
where gratransaction.id = user_transaction.trans_id and
user_transaction.transdate between to_date(fromdate,'dd-mon-yyyy') and to_date(todate,'dd-mon-yyyy')
group by to_char(user_transaction.transdate, 'dd-mon-yyyy'), eventdesc
) td on td.currentdate = d.dateInRange order by d.dateInRange asc