普通用户在SQL*Plus中开启AUTOTRACE报告时,遇到SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled错误。如下所示:
SQL>
SQL> set autotrace on;
SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled
SP2-0611: Error enabling STATISTICS report
SQL>
此时应该检查数据库是否已经创建了角色PLUSTRACE,使用下面脚本检查角色PLUSTRACE是否存在。
SELECT * FROM DBA_ROLES WHERE ROLE='PLUSTRACE'
如果角色不存在,应该去$ORACLE_HOME/sqlplus/admin/目录下,你会找到plustrce.sql脚本文件。
[oracle@db-server ~]$ cd $ORACLE_HOME/sqlplus/admin/
[oracle@db-server admin]$ ls
glogin.sql help iplus libisqlplus.def libsqlplus.def plustrce.sql pupbld.sql
[oracle@db-server admin]$ more plustrce.sql
--
-- Copyright (c) Oracle Corporation 1995, 2002. All Rights Reserved.
--
-- NAME
-- plustrce.sql
--
-- DESCRIPTION
-- Creates a role with access to Dynamic Performance Tables
-- for the SQL*Plus SET AUTOTRACE ... STATISTICS command.
-- After this script has been run, each user requiring access to
-- the AUTOTRACE feature should be granted the PLUSTRACE role by
-- the DBA.
--
-- USAGE
-- sqlplus "sys/knl_test7 as sysdba" @plustrce
--
-- Catalog.sql must have been run before this file is run.
-- This file must be run while connected to a DBA schema.
set echo on
drop role plustrace;
create role plustrace;
grant select on v_$sesstat to plustrace;
grant select on v_$statname to plustrace;
grant select on v_$mystat to plustrace;
grant plustrace to dba with admin option;
set echo off
执行该脚本就会创建角色PLUSTRACE,如下所示。然后将该角色授予对应用户即可。