我有远程连接到非 oracle 数据库。
我尝试执行两个 sql 的 . 远程数据库上的列日为 char。
这工作正常
select * from tab
where day='2021-11-11'
执行计划
PLAN_TABLE_OUTPUT
Plan hash value: 1788691278
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Inst |IN-OUT|
| 0 | SELECT STATEMENT | | 20 | 44760 | 200 (0)| 00:00:01 | | |
| 1 | REMOTE | EV_LOGS | 20 | 44760 | 200 (0)| 00:00:01 | RS_HD~ | R->S |
这永远不会结束
select * from tab
where day=to_char(sysdate-5,'yyyy-mm-dd')
PLAN_TABLE_OUTPUT
Plan hash value: 2703195431
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Inst |IN-OUT|
| 0 | SELECT STATEMENT | | 20 | 44760 | 200 (0)| 00:00:01 | | |
|* 1 | FILTER | | 20 | 44760 | 200 (0)| 00:00:01 | | |
| 2 | REMOTE | EV_LOGS | | | | | RS_HD~ | R->S |
Predicate Information (identified by operation id):
1 - filter("day"=TO_CHAR(SYSDATE@!-20,'yyyy-mm-dd'))
我尝试了不同的提示,但其中任何一个都没有帮助。我想我可以重写它以立即执行,但是如何避免呢?