Oracle VPD, как ссылаться на таблицу

Я борюсь со следующей проблемой. Я хочу ограничить доступ к таблице с помощью Oracle VPD. В предложении where, которое возвращает функция выбора политики, мне нужна ссылка на таблицу в подзапросе следующим образом:

select * from Table t1
where not exists (select 1 from Table t2 where t2.name=t1.name and t2.date=t1.date)

(Пример не имеет большого смысла, кроме иллюстрации проблемы)

У меня нет контроля над выбранной частью запроса.

select * from Table t1

Таблице можно присвоить любой псевдоним или не присваивать его вообще. Поэтому я понятия не имею, как ссылаться на таблицу в предложении where. Есть ли способ обойти это?

(Оракул 10GR2)


person Rene    schedule 19.10.2010    source источник
comment
Хорошо, благодаря Тони я получил свое решение. где (имя,дата) не в (выбрать имя,дата...)   -  person Rene    schedule 19.10.2010


Ответы (1)


Я думаю, вам нужно будет использовать NOT IN:

(name, datecol) not in (select name, datecol from table2)
person Tony Andrews    schedule 19.10.2010
comment
Спасибо за обходной путь, но у меня есть два столбца для сравнения. Я обновлю свой пример соответственно - person Rene; 19.10.2010
comment
Спасибо, иногда решение смотрит вам прямо в лицо... но именно поэтому существует Stackoverlflow. - person Rene; 19.10.2010