Welcome 微信登录

首页 / 数据库 / MySQL / ORA-13600 QSM-00794错误解决方法

1、 本想使用dbms_advisor做一个sql access advisor测试,不料却遇ORA-13600 QSM-00794报错,如下:
SQL> DECLARE2 task_name VARCHAR2(200);3 BEGIN4 task_name := "My_Task";5 DBMS_ADVISOR.QUICK_TUNE(DBMS_ADVISOR.SQLACCESS_ADVISOR,"My_Task",6 "select * from system.litest_8 where object_id=20");7 END;8 /DECLARE*ERROR at line 1:ORA-13600: error encountered in AdvisorQSM-00794: the statement can not be stored due to a violation of the invalidtable reference filterORA-06512: at "SYS.PRVT_ACCESS_ADVISOR", line 1809ORA-06512: at "SYS.WRI$_ADV_SQLACCESS_ADV", line 180ORA-06512: at "SYS.PRVT_ADVISOR", line 3678ORA-06512: at "SYS.DBMS_ADVISOR", line 711ORA-06512: at line 5
注意上面标红色部分,表的schema为system 2、上metalink上查原因,发现有文章ID:403358.1中做了详细原因描述
SQL Access Advisor maintains an internal list of non-tunable tables regardless of the contents of
the INVALID_TABLE_LIST parameter.
No table that is owned by SYS, SYSTEM or any other pre-defined Oracle schema can be tuned.
 看来原因是因为dbms_advisor.quick_tune不支持为SYS和SYSTEM两个用户的表的顾问功能了。 3、将测试的表改到其他用户下试试3.1 在litest这个用户下创建表SQL> create table litest.litest_8 asselect * from system.litest_83.2 重新用DBMS_ADVISOR.QUICK_TUNE使用sql access advisor功能
SQL> DECLARE2 task_name VARCHAR2(200);3 BEGIN4 task_name := "My_Task";5 DBMS_ADVISOR.QUICK_TUNE(DBMS_ADVISOR.SQLACCESS_ADVISOR,"My_Task",6 "select * from litest.litest_8 where object_id=20");7 END;8 / PL/SQL procedure successfully completed.
注意上面标绿色部分,更换成了litest(非SYS或SYSTEM用户了)Linux-6-64下安装Oracle 12C笔记 http://www.linuxidc.com/Linux/2013-07/86805.htm在CentOS 6.4下安装Oracle 11gR2(x64) http://www.linuxidc.com/Linux/2014-02/97374.htmOracle 11gR2 在VMWare虚拟机中安装步骤 http://www.linuxidc.com/Linux/2013-09/89579p2.htmDebian 下 安装 Oracle 11g XE R2 http://www.linuxidc.com/Linux/2014-03/98881.htmOracle数据库查看使用默认密码的用户信息 http://www.linuxidc.com/Linux/2013-08/88579.htm更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址