Oracle 12c-从视图中获取导入表统计信息

Oracle 12c-从视图中获取导入表统计信息,oracle,view,oracle12c,optimizer-statistics,Oracle,View,Oracle12c,Optimizer Statistics,我在Oracle 11g上运行了一些代码,我们正在迁移到12c(12.2.0.1.0)。 在一个处理过程DBMS\u STATS.IMPORT\u TABLE\u STATS中调用,并在statab中提供视图的参数名称。 该视图是一个来自一个表的简单select查询,一列由decode函数计算,另一列在源列中按原样处理。调用IMPORT\u TABLE\u STATS的用户是目标表、视图和视图下表的所有者。 在11g代码工作时,在12c中我收到以下错误: ORA-20000:对象不存在或权限不足

我在Oracle 11g上运行了一些代码,我们正在迁移到12c(12.2.0.1.0)。
在一个处理过程
DBMS\u STATS.IMPORT\u TABLE\u STATS
中调用,并在
statab
中提供视图的参数名称。
该视图是一个来自一个表的简单select查询,一列由decode函数计算,另一列在源列中按原样处理。调用
IMPORT\u TABLE\u STATS的用户是目标表、视图和视图下表的所有者。
在11g代码工作时,在12c中我收到以下错误:

ORA-20000:对象不存在或权限不足


有什么理由吗?在12c版本的
DBMS\u STATS
实现中是否有更改,禁止使用视图作为
导入表\u STATS
的源?

在11.2和12.2中由
创建表
创建的表是不同的。如果您希望
IMPORT\u table\u STATS
将其吞下,您的视图至少应该看起来有点像官方表格

Column    11.2                12.2
statid    VARCHAR2(30 CHAR)   VARCHAR2(128 BYTE)
type      CHAR(1 CHAR)        CHAR(1 BYTE)
version   NUMBER              NUMBER
flags     NUMBER              NUMBER
c1        VARCHAR2(30 CHAR)   VARCHAR2(128 BYTE)
c2        VARCHAR2(30 CHAR)   VARCHAR2(128 BYTE)
c3        VARCHAR2(30 CHAR)   VARCHAR2(128 BYTE)
c4        VARCHAR2(30 CHAR)   VARCHAR2(128 BYTE)
c5        VARCHAR2(30 CHAR)   VARCHAR2(128 BYTE)
c6        -                   VARCHAR2(128 BYTE)
n1        NUMBER              NUMBER
n2        NUMBER              NUMBER
n3        NUMBER              NUMBER
n4        NUMBER              NUMBER
n5        NUMBER              NUMBER
n6        NUMBER              NUMBER
n7        NUMBER              NUMBER
n8        NUMBER              NUMBER
n9        NUMBER              NUMBER
n10       NUMBER              NUMBER
n11       NUMBER              NUMBER
n12       NUMBER              NUMBER
n13       -                   NUMBER
d1        DATE                DATE
R1        RAW(32)             RAW(1000)
R2        RAW(32)             RAW(1000)
R3        -                   RAW(1000)
CH1       VARCHAR2(1000 CHAR) VARCHAR2(1000 BYTE)
CL1       CLOB                CLOB
BL1       -                   BLOB

出于好奇,如果您以sysdba的身份运行它,或者允许用户进行任何分析,它会起作用吗?在第一次阅读您的问题时,我的反应是:您入侵了
DMBS\u STATS
,发现
IMPORT\u TABLE\u STATS
接受了一个视图,而不是官方的
CREATE\u statu TABLE
TABLE,现在,我们对12.2版本中的黑客程序不起作用感到不满。话虽如此,我觉得这种创造力令人印象深刻,当然值得进行一些调查。