Вы можете использовать переменную пакета и функцию пакета вместе с представлением. Переменная пакета установлена на уровне сеанса, поэтому может быть разной для разных сеансов.
Создать спецификацию пакета
create or replace package pkg_current_date is
current_date date;
function get_current_date return date;
end pkg_current_date;
И корпус упаковки:
create or replace package body pkg_current_date is
function get_current_date return date is
begin
return current_date;
end;
end pkg_current_date;
Затем используйте функцию, созданную в представлении
CREATE VIEW v1
as
select
some_id
from
tablename t
where
t.end_date < pkg_current_date.get_current_date;
Чтобы запросить представление, просто установите дату, а затем запросите. Возможно, стоит установить какую-то дату по умолчанию, иначе представление ничего не даст, так как current_date
будет нулевым.
begin
pkg_current_date.current_date := date '2010-01-01'
end;
select * from v1