【发布时间】:2018-05-15 12:22:52
【问题描述】:
我有一些代码在 Oracle 11g 上运行,我们正在迁移到 12c (12.2.0.1.0)。
在其中一个处理过程中调用DBMS_STATS.IMPORT_TABLE_STATS,并在stattab 中提供了视图的参数名称。
该视图是一个表的简单选择查询,一列由解码函数计算,其他列在源列中。调用IMPORT_TABLE_STATS的用户是目标表、视图和视图下表的所有者。
在 11g 中代码正在运行,在 12c 中我收到以下错误:
ORA-20000: 对象不存在或权限不足。
关于理性的任何想法? 12c 版本的DBMS_STATS 实现是否有更改,禁止使用视图作为IMPORT_TABLE_STATS 的源?
【问题讨论】:
-
出于好奇,如果您将其作为 sysdba 运行,或者授予用户 ANALYZE ANY 权限,它会起作用吗?
-
在第一次阅读你的问题时,我的反应是:你入侵了
DMBS_STATS,发现IMPORT_TABLE_STATS接受了一个视图而不是官方的CREATE_STAT_TABLE表,现在很不高兴这个黑客没有不能在 12.2 中工作。话虽如此,我觉得这样的创造力令人印象深刻,当然值得研究一下。
标签: oracle view oracle12c optimizer-statistics