2010-10-19 54 views
2

我正在努力解決以下問題。我想限制使用Oracle VPD訪問表。在WHERE子句中的選擇策略函數返回我需要在一個子查詢表中的引用如下:Oracle VPD如何引用表

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)

+0

OK,感謝託尼我得到了我的解決方案。哪裏(姓名,日期)不在(選擇姓名,日期...) – Rene 2010-10-19 13:09:14

回答

0

我想你會需要未使用:

(name, datecol) not in (select name, datecol from table2) 
+0

感謝您的解決方法,但我有兩列進行比較。我會相應地更新我的示例 – Rene 2010-10-19 13:05:14

+0

我已經更新了我的答案... – 2010-10-19 13:10:22

+0

感謝有時解決方案正在盯着你......但這就是爲什麼Stackoverlflow – Rene 2010-10-19 13:20:48