set autotrace on SP2-0618: 无法找到会话标识符。启用检查 PLUSTRACE 角色 SP2-0611: 启用 STATISTICS 报告时出错
程序员文章站
2022-07-13 14:12:45
...
scott用户执行set autotrace on
报错:
SQL> set autotrace on
SP2-0618: 无法找到会话标识符。启用检查 PLUSTRACE 角色
SP2-0611: 启用 STATISTICS 报告时出错
原因:
用户没有PLUSTRACE角色权限
解决办法:
- 以sys用户,执行下面二个sql文件
1)执行$ORACLE_HOME/sqlplus/admin/plustrce.sql
,创建角色
2)执行$ORACLE_HOME/rdbms/admin/utlxplan.sql
,创建plan_table表
文件内容:
执行文件:SQL> @D:\app\Administrator\product\11.2.0\dbhome_1\sqlplus\admin\plustrce.sql #以下为plustrce.sql的执行代码: SQL> SQL> drop role plustrace; drop role plustrace * 第 1 行出现错误: ORA-01919: 角色 'PLUSTRACE' 不存在 SQL> create role plustrace; 角色已创建。 SQL> SQL> grant select on v_$sesstat to plustrace; 授权成功。 SQL> grant select on v_$statname to plustrace; 授权成功。 SQL> grant select on v_$mystat to plustrace; 授权成功。 SQL> grant plustrace to dba with admin option; 授权成功。 SQL> SQL> set echo off SQL> @D:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN\utlxplan.sql 表已创建。
- 给用户赋予plustrace角色权限。
SQL> grant plustrace to scott; SQL> grant select any dictionary toscott;
- 测试
退出后再次测试成功
后续
报错ORA-01039: 视图基本对象的权限不足
执行计划
----------------------------------------------------------
ERROR:
ORA-01039: 视图基本对象的权限不足
SP2-0612: 生成 AUTOTRACE EXPLAIN 报告时出错
统计信息
----------------------------------------------------------
0 recursive calls
0 db block gets
1520 consistent gets
0 physical reads
0 redo size
793 bytes sent via SQL*Net to client
427 bytes received via SQL*Net from client
3 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
16 rows processed
需要给scott再授权grant select any dictionary to scott;