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不存在

时间: 2024-11-08 10:22:08

oracle中解决角色PLUSTRACE不存在的相关文章

oracle 中的角色

conn sys as sysdba;create role testrole;grant create session, create table, unlimited tablespace to testrole;create user test identified by test;grant testrole to test;conn test/test; oracle 中常用的角色: connect resource conn sys as sysdba;create user tes

oracle中用户角色的查询和授权

用户拥有的系统权限 select  privilege  from dba_sys_privs  where grantee='&USERNAME' union  select  privilege  from  dba_sys_privs  where  grantee  in  (select  granted_role  from  dba_role_privs  where  grantee='&USERNAME'); 创建用户 CREATE USER songgx        

oracle中有关用户、角色的一些概念。

oracle中的每个用户对应一个单独的方案(schema),方案的名字与用户名一样,方案中包含很多数据对象,表,视图,触发器,存储过程等元素. oracle中管理数据库的角色有sys,system,数据库的维护由数据库自己来完成,任何用户不得更改. sys:所有oracle的数据字典的基表和视图都存放在sys用户中, sys拥有dba,sysdba,sysoper角色或权限,是权限最高的用户. sys用户必须以as sysdba或 as sysoper用户登录,不能以normal方式登录. sy

解决比较Oracle中CLOB字段问题

解决比较Oracle中CLOB字段问题 Oracle中CLOB和BLOB字段虽说在开发中满足了存放超大内容的要求,但是在一些简单使用中确频频带来麻烦.CLOB中存放的是指针,并不能直接取到实际值.而SQLServer中的text字段就很方便,可以直接拿来与需要的字符串比对,象什么等于呀小于呀Like呀不在话下.可是换成Oracle就麻烦死了,要开辟一个缓存,把内容一段段读取出来后转换,难道写个where条件都这么复杂?经过多方寻求资料,终于发现一个方便简单的方法:利用dbms_lob 包中的方法

oracle中记录被另一个用户锁住的原因与解决办法

oracle数据中删除数据时提示“记录被另一个用户锁住” 解决方法: 1.查看数据库锁,诊断锁的来源及类型: select object_id,session_id,locked_mode from v$locked_object; 或者用以下命令: select b.owner,b.object_name,l.session_id,l.locked_mode from v$locked_object l, dba_objects b where b.object_id=l.object_id

Oracle中没有 if exists(...)的解决方法

http://blog.csdn.net/hollboy/article/details/7550171对于Oracle中没有 if exists(...) 的语法,目前有许多种解决方法,这里先分析常用的三种,推荐使用最后一种 第一种是最常用的,判断count(*)的值是否为零,如下declare  v_cnt number;begin  select count(*) into v_cnt from T_VIP where col=1;  if v_cnt = 0 then    dbms_o

Oracle中使用Table()函数解决For循环中不写成 in (l_idlist)形式的问题

转: Oracle中使用Table()函数解决For循环中不写成 in (l_idlist)形式的问题 在实际PL/SQL编程中,我们要对动态取出来的一组数据,进行For循环处理,其基本程序逻辑为: 1 2 3 4 5 6 7 8 9 10 11 12 create or replace procedure getidlist is   l_idlist varchar2(200); begin   l_idlist:='1,2,3,4';   for brrs in (select * fro

oracle中使用impdp数据泵导入数据提示“ORA-31684:对象类型已经存在”错误的解决

转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/47448751 oracle中使用impdp数据泵导入数据时,假设导入之前已经创建了用户,会提示错误:"ORA-31684:对象类型已经存在".如: 事实上这个问题并不严重,能够先不创建用户,导入时指定一个超级用户导入: impdp system/123456@ORCL DIRECTORY=DUMP_EXP DUMPFILE=EXPDATA.DMP remap_sche

oracle中出现"数据被另一用户锁住"的解决方法

在oracle中执行: select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time; alter system kill session 'SID,serial#' 版权声明:本文为博主原创文章,未经博主允许不得转载.