在sqlplus中执行了这个命令,报错了
SQL>  exec dbms_system.set_sql_trace_in_session(153,25080,true)
BEGIN dbms_system.set_sql_trace_in_session(153,25080,true); END;*
第1行出现错误:
ORA-06509: PL/SQL: 此程序包缺少 ICD 向量
ORA-06512: 在 "SYSTEM.DBMS_SYSTEM", line 59
ORA-06512: 在 "SYSTEM.DBMS_SYSTEM", line 51
ORA-06512: 在 line 1请高手来帮忙解决一下。
用的是system用户登录的。应该不存在权限问题吧?

解决方案 »

  1.   

    SQL> show user
    USER 为 "SYS"
    SQL> exec dbms_system.set_sql_trace_in_session(153,25080,true)PL/SQL 过程已成功完成。SQL> conn system/top10@test
    已连接。
    SQL> exec dbms_system.set_sql_trace_in_session(153,25080,true)
    BEGIN dbms_system.set_sql_trace_in_session(153,25080,true); END;      *
    第 1 行出现错误:
    ORA-06550: 第 1 行, 第 7 列:
    PLS-00201: 必须声明标识符 'DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION'
    ORA-06550: 第 1 行, 第 7 列:
    PL/SQL: Statement ignored
    SQL> conn sys/top10@test as sysdba
    已连接。
    SQL> grant execute on DBMS_SYSTEM to system;授权成功。SQL> conn system/top10@test
    已连接。
    SQL> exec dbms_system.set_sql_trace_in_session(153,25080,true)
    BEGIN dbms_system.set_sql_trace_in_session(153,25080,true); END;      *
    第 1 行出现错误:
    ORA-06550: 第 1 行, 第 7 列:
    PLS-00201: 必须声明标识符 'DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION'
    ORA-06550: 第 1 行, 第 7 列:
    PL/SQL: Statement ignored
    SQL> select * from v$version;BANNER
    ----------------------------------------------------------------
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
    PL/SQL Release 10.2.0.1.0 - Production
    CORE    10.2.0.1.0      Production
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - ProductionSQL>
      

  2.   


    1、首先要赋权限。
    2、调用时要加sys。
      

  3.   

    你应该用sys,不是system用户!
      

  4.   

    16:11:15 sys@PRACTICE> exec dbms_system.set_sql_trace_in_session(153,25080,true);PL/SQL 过程已成功完成。已用时间:  00: 00: 00.00
    16:11:23 sys@PRACTICE> conn system
    已连接。GLOBAL_NAME
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    system@PRACTICE已用时间:  00: 00: 00.00会话已更改。已用时间:  00: 00: 00.00
    16:11:32 system@PRACTICE> exec dbms_system.set_sql_trace_in_session(153,25080,true);
    BEGIN dbms_system.set_sql_trace_in_session(153,25080,true); END;      *
    第 1 行出现错误:
    ORA-06550: 第 1 行, 第 7 列:
    PLS-00201: 必须声明标识符 'DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION'
    ORA-06550: 第 1 行, 第 7 列:
    PL/SQL: Statement ignored
    已用时间:  00: 00: 00.00
    16:11:39 system@PRACTICE> conn sys as sysdba
    已连接。GLOBAL_NAME
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    sys@PRACTICE已用时间:  00: 00: 00.00会话已更改。已用时间:  00: 00: 00.00
    16:11:45 sys@PRACTICE> grant execute on dbms_system to system;授权成功。已用时间:  00: 00: 00.01
    16:11:52 sys@PRACTICE> conn system
    已连接。GLOBAL_NAME
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    system@PRACTICE已用时间:  00: 00: 00.00会话已更改。已用时间:  00: 00: 00.00
    16:12:00 system@PRACTICE> exec dbms_system.set_sql_trace_in_session(153,25080,true);
    BEGIN dbms_system.set_sql_trace_in_session(153,25080,true); END;      *
    第 1 行出现错误:
    ORA-06550: 第 1 行, 第 7 列:
    PLS-00201: 必须声明标识符 'DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION'
    ORA-06550: 第 1 行, 第 7 列:
    PL/SQL: Statement ignored
    已用时间:  00: 00: 00.01
    16:12:05 system@PRACTICE> exec sys.dbms_system.set_sql_trace_in_session(153,25080,true);PL/SQL 过程已成功完成。已用时间:  00: 00: 00.00
      

  5.   

    谢各位大侠,问题已解决,3楼的哥们说的对,应该用sys用户。
    还这是权限问题。3Q大家~