【发布时间】:2015-02-07 20:57:12
【问题描述】:
我们需要使用绑定变量实现查询重写,因为我们没有修改 Web 应用程序源代码的选项。示例:
BEGIN
SYS.DBMS_ADVANCED_REWRITE.declare_rewrite_equivalence (
name => 'test_rewrite2',
source_stmt => 'select COUNT(*) from ViewX where columnA = :1',
destination_stmt => 'select COUNT(*) from ViewY where columnA = :1',
validate => FALSE,
rewrite_mode => 'recursive');
END;
上面的命令会报错,因为有绑定变量:
30353. 00000 - "expression not supported for query rewrite"
*Cause: The SELECT clause referenced UID, USER, ROWNUM, SYSDATE,
CURRENT_TIMESTAMP, MAXVALUE, a sequence number, a bind variable,
correlation variable, a set result, a trigger return variable, a
parallel table queue column, collection iterator, a non-deterministic
date format token RR, etc.
*Action: Remove the offending expression or disable the REWRITE option on
the materialized view.
我正在阅读here 有一个解决方法,但我无法在网上的任何地方找到该文档。
您能告诉我解决方法是什么吗?
【问题讨论】:
标签: oracle oracle11g oracle10g