基本上我有一个视图,它具有以下查询作为视图的一部分。我需要在oracle视图中声明一个变量
SELECT site_id ch_site_id
FROM bfg_router_pi_details
WHERE last_modified_date > (SELECT MAX (last_time_stamp)
FROM saa_bfg_feed_ctl)
现在,在这个查询bfg_router_pi_details是在另一个数据库的视图和saa_bfg_feed_ctl是在同一数据库中的表从我们射击这个查询。
现在当这个查询像上面在where子句中使用内部查询一样被触发时,它需要2个小时才能完成,因为它正在通过db链接。但是,如果我用实际日期值替换内部查询需要2分钟。所以我试图查看是否有任何方法可以在视图中定义变量并将最后的时间戳值赋予该变量,然后在查询的where子句中替换该变量,以便执行变得更快。希望你能理解这个问题。
+1但是,您的示例错误地暗示可以直接在SQL语句中引用包变量。您将需要编写一个函数来检索值。 –
感谢您指出。这就是为什么我也提到了上下文。 –