¿Qué tal, como se puede crear una vista en oracle con parámetros de entrada?

create or replace force view xxban_dias_v
(periodo, día)
as
(select distinct period_name, fechas
from (select period_name, start_date-1+level as fechas
from gl.gl_periods
where (start_date-1+level) <= last_day(start_date)
connect by level <= last_day(start_date) - start_date+1
and period_set_name = 'BB_CALENDARIO'
and period_name = '&p_period_name'));
Necesito crear esa vista con el parámetro PERIOD_NAME = '&P_PERIOD_NAME', pero si la ejecuto así me pide el parámetro, y eso es lo que no quiero; sino cuando se ejecute ya como vista poderle pasar el parámetro. Pero si le quito ese parámetro antes de crearla y se lo pongo una vez creada la vista ya no me filtra bien.
Me gustaría que quedara así, en una vista:
create or replace force view xxban_dias_v
(periodo, día) as
(select distinct period_name, to_char(fechas,'dd')
from (select period_name, start_date-1+level as fechas
from gl.gl_periods
where (start_date-1+level) <= last_day(start_date)
connect by level <= last_day(start_date) - start_date+1
and period_set_name = 'BB_CALENDARIO'
and period_name = 'FEB-11') /** and period_name = '&p_period_name' **/


Y así la consulta:


select periodo, día from xxban_dias_v
where period_name = 'FEB-11'
order by día

Añade tu respuesta

Haz clic para o