我正在使用 oracle_fdw 2.2.0devel、PostgreSQL 10.13、Oracle 客户端 18.3.0.0.0
我们在 Postgres 中有一个外表定义如下:
CREATE FOREIGN TABLE public.tickers
(
ticker_id INTEGER,
ticker VARCHAR,
)
SERVER oracle
OPTIONS (table 'TICKERS', schema 'COMMENTARY', readonly 'true');
这是作为 12c SE 数据库连接的。这很好用,但是,我注意到 Oracle 中的查询实际上是这样的:
SELECT
/*618157932326e692807010156f98ddac*/
r2."TICKER_ID",
r2."TICKER"
FROM "COMMENTARY"."TICKERS" r2
WHERE (upper(r2."TICKER") = upper(:p1))
为什么它会自动添加“UPPER”子句?这会减慢 Oracle 查询并且不使用索引,除非我使用“upper”创建 FBI。
想知道是否有一些我应该禁用的选项.......