今天在导入整个schema的统计信息时出现了ORA-20000错误,
begin
dbms_stats.import_schema_stats(ownname => ‘user2’,stattab => 'STATTAB_20140219',statown => ‘user1’);
END ;
ORA-20000: Unable to set values for column T_DISTRIBUTED: does not exist or insufficient privileges
ORA-06512: at "SYS.DBMS_STATS", line 7346
ORA-06512: at "SYS.DBMS_STATS", line 7373
ORA-06512: at "SYS.DBMS_STATS", line 8038
ORA-06512: at line 3
. 首先怀疑两个环境的schema下表结构不一致,目标库缺少相应的字段导致的。(导入用户的权限很大,应该不存在权限问题)
select table_name from dba_tab_columns where column_name = 'T_DISTRIBUTED' and owner=user2’)
果然没有。
可以采用两种解决办法,
1. 将目标库的表结构都同步为源库的表结构,
2. 可以将统计信息表里不存在该字段的表记录删掉,然后导入统计信息。
由于涉及到的表数量太大,同步不可能了,只好采取另外一个措施;
delete from DBMGR.STATTAB_20140219 where c4 ='T_DISTRIBUTED'
删除之后就可以正常导入了。
mark下:
还有其它好的办法么,欢迎探讨》