【发布时间】:2014-10-08 07:40:06
【问题描述】:
我正在跨数据库链接运行从 Oracle 到 Sybase 服务器的查询。
其中的 where 子句是对日期的限制,我希望它与 sysdate 相关联,所以是这样的:
select * from some_remote_view where some_numeric_key = 1 and some_date > sysdate+2
问题是,当我解释计划时,只有条件 some_numeric_key = 1 出现在远程连接到 sybase 服务器的实际 sql 中。 Oracle 期望自己执行日期过滤。
这导致了性能噩梦 - 我需要远程处理该日期过滤器以使此查询快速工作
即使我尝试将 sysdate 转换为这样的字符字符串: to_char(sysdate-2,'YYYY-MM-DD')
它仍然没有远程它。
我可以做些什么来让 Oracle 通过 db 链接远程将此日期过滤器连接到 Sybase?
【问题讨论】:
-
数据库链接的乐趣。对 SYbase 不太了解,但是当遇到类似的 Oracle-Oracle 问题时,我会查看是否可以从远程数据库的视图中驱动结果,这通常可以远程进行过滤。如果查询/视图需要参数,则可以从远程数据库上针对此特定查询的合适表驱动此参数,首先在运行查询之前插入参数数据。