oracle中解决角色PLUSTRACE不存在

在sqlplus中用autotrace查看执计划时出现如下错误提示:

SYS@CDB$ROOT> conn scott/tiger@pdborcl

Connected.会话已更改。

SCOTT@PDBORCL> set autotrace on;

SP2-0618: 无法找到会话标识符。启用检查 PLUSTRACE 角色

SP2-0611: 启用 STATISTICS 报告时出错

这是由于角色PLUSTRACE不存在,或没有创建。 只要执行$ORACLE_HOME/sqlplus/admin/plustrce.sql脚本就创建plustrace角色:

SCOTT@PDBORCL> conn sys/orcl@pdborcl as sysdba

Connected.

会话已更改。

SYS@PDBORCL> @C:\app\ORACLE\product\12.1.0\dbhome_1\sqlplus\admin\plustrce.sql

SYS@PDBORCL> grant plustrace to scott;

这样scott用户可以用autotrace跟踪sql执行计划了

SYS@CDB$ROOT> conn scott/tiger@pdborcl
Connected.

会话已更改。

SCOTT@PDBORCL> set autotrace on;
SP2-0618: 无法找到会话标识符。启用检查 PLUSTRACE 角色
SP2-0611: 启用 STATISTICS 报告时出错
SCOTT@PDBORCL> conn sys/orcl@pdborcl as sysdba
Connected.

会话已更改。

SYS@PDBORCL> @C:\app\ORACLE\product\12.1.0\dbhome_1\sqlplus\admin\plustrce.sql
SYS@PDBORCL>
SYS@PDBORCL> drop role plustrace;

角色已删除。

SYS@PDBORCL> create role plustrace;

角色已创建。

SYS@PDBORCL>
SYS@PDBORCL> grant select on v_$sesstat to plustrace;

授权成功。

SYS@PDBORCL> grant select on v_$statname to plustrace;

授权成功。

SYS@PDBORCL> grant select on v_$mystat to plustrace;

授权成功。

SYS@PDBORCL> grant plustrace to dba with admin option;

授权成功。

SYS@PDBORCL>
SYS@PDBORCL> set echo off
SYS@PDBORCL> grant plustrace to scott;

授权成功。

SYS@PDBORCL>

截图:

技术分享

参考:

oracle中解决角色PLUSTRACE不存在

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。