jasontome的android之路:Do it. Do it right. Do it righ

或许这时候你才会明白,生活,原来处处有计算机

cannot set autotrace

今天在PL/SQL DEVELOPER工具中,从Command窗口输入set autotrace on 报错:“cannot set autotrace”
    SQL> set autotrace on
    Cannot SET AUTOTRACE

    可能是当初没有进行设置吧,不过10g好像不用设置,不管他了,按照相关的操作做一遍吧,印象也比较深刻,于是参考eygle的blog,对我的测试环境做了如下操作:

1. create table PLAN_TABLE

D:\oracle\ora92>sqlplus /nolog
SQL> connect / as sysdba
已连接。
SQL>@?\rdbms\admin\utlxplan.sql
表已创建。(create table PLAN_TABLE)

2. create synonym plan_table

SQL> create public synonym plan_table for plan_table;
同义词已创建。

3. grant priv on plan_table

SQL> grant all on plan_table to public/user ;
授权成功。

4. creat role plustrace

SQL>@?\sqlplus\admin\plustrce.sql
SQL>
SQL> drop role plustrace;
drop role plustrace
*
ERROR 位于第 1 行:
ORA-01919: 角色'PLUSTRACE'不存在
SQL> create role plustrace;
角色已创建
SQL> grant select on v_$sesstat to plustrace;
授权成功。
SQL> grant select on v_$statname to plustrace;
授权成功。
SQL> grant select on v_$session to plustrace;
授权成功。
SQL> grant plustrace to dba with admin option;
授权成功。
SQL> set echo off

做完授权以后,再次登陆PL/SQL DEVELOPER工具中的COMMAND窗口,执行 set autotrace on还是报错:“cannot set autotrace”,奇怪,怀疑是工具的问题,于是输入cmd,用sqlplus登陆,结果是可以的,操作步骤如下:
SQL> connect leiz/leiz
已连接。
SQL> set autotrace on

所以断定是PL/SQL DEVELOPER工具的问题,google一下,查到一些朋友和我遇到了同样的问题:pl/sql   developer并不完全支持所有的sql   plus的命令。set   autotrace就属于不支持的语句,此外还有show   parameters   ...,whenever   ...等。在这里记录一下。

关于Autotrace几个常用选项的说明:

SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式
SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告
SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息
SET AUTOTRACE ON ----------------- 包含执行计划和统计信息
SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询输出

参考文献:

1.http://www.eygle.com/faq/AutoTrace.htm

2.http://topic.csdn.net/t/20050920/14/4281733.html


阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭