SQLPlus的命令

show和set是两条用于维护SQl*plus系统变量的命令:

  

SQL>show all 查看系统变量;

SQL>show user 查看当前用户的连接;

SQL>show error 查看错误信息;

SQL>show XXX  显示XX参数信息;

SQL>set timing on  默认耗时,用来测试sql执行时间,测试效率,一般为off,写在sql 语句之前;

SQL>set heading off 禁止输出列标题,默认为on;

SQL>set feedback off 禁止显示最后一行的计数反馈信息,默认值为"对6个或更多的记录,会送为on"

SQL>set sqlprompt"SQL>"  设置默认提示符;

SQL>set linesize 1000 设置屏幕显示行宽,默认为100;

SQL>set autocommit on 设置是否自动提交,默认为off;

SQL>set pause on 默认为off 设置暂停,会使屏幕显示停止,等待按下enter键,在显示下一页。

SQL>set arraysize 1  默认为15

SQL>set long 1000 默认为80,设置1000是为了显示很多数据字典视图中用到了long数据类型

SQL>define a=“xxxxx” 定义局部变量,如果想用一个类似在各种显示中所包括的回车那样的常量,可以用define来设置

 

sql*plus中缓冲区命令列表

命令                                缩写                         作用

change/旧文本/新闻本    C/旧文本/新闻本           在当前行用新文本替换旧文本

change/文本                 C/文本                         从当前行删除文本

del                                                                  删除当前行

del  n                                                              删除第n行

del n *                                                            删除第n行到当前行

del n m                                                           删除第n行到m行

del n last                                                        删除第n行道最后一行

del *                                                               删除当前行

del * n                                                            删除当前行道第n行

del * last                                                        删除当前行道最后一行

del  last                                                          删除最后一行

input                               I                              在当前行之后添加多行,input会提示输入每一行

input  文本                       I 文本                       在当前行之后添加一行

list                                   L                             显示缓冲区中所有的行

list  n                               L  n                         显示缓冲区中第n行

list  n m                           L  n m                      显示缓冲区第n到第m行

list n  last                        L n last                    显示缓冲区第n行道最后一行

list *                                L *                           显示缓冲区当前行

list * n                             L *  n                       显示缓冲区的前行到第n行

list * last                         L  * last                    显示缓冲区当前行中道最后一行

list last                            L last                        显示缓冲区最后一行

run                                  R                              显示并执行当钱缓冲区的命令,并使缓冲区的最后一行成为当前行

/                                                                       执行当前缓冲区的命令,不显示缓冲区命令

行号                                                                   设置缓冲区的某一行为当前行

 

 

sql*plus执行计划和统计数据的两种方式:

SQL>connect/as sysdba

SQL>@?/rdbms/admin/utlxplan.sql   执行utlxplan.sql文件,创建plan_table

SQL>create public synonym plan_table for plan_table;

SQL>grant all on plan_table to public;

SQL>@?/sqlplus/admin/plustrce.sql  建立pulstrace角色

SQL>grant pulstrace to public;

 解释:

      在有了plan_table表和plustrace角色的情况下:

      1、先explain plan for sql_stmt;然后@?/RDBMS/ADMIN/utlxpls看执行计划

      2、先 set autotrace traceonly 然后直接执行sql_stmt;会自动显示执行计划和统计信息。

注意:

     set autotrace 选项:

       on  显示查询结果,执行计划,统计数据;

       on statistics  显示查询结果,统计数据,不显示执行计划

       on explain 显示查询结果,执行计划,不像是统计数据

       traceonly 显示执行计划和统计结果,但不包括查询结果

       traceonly statistics 仅显示统计数据。

 

使用autotrace:

      

SQL> connect 用户名/密码

SQL> set autotrace on

SQL> set timing on

SQL> set autotrace traceonly

SQL> select table_name from user_tables;

 

 

显示用户名查询语句:

   select lower(user)||'@'||global_name global_name from global_name;

 

 

sqlplus里出报表:

   compute sum of bytes onpool

   break on pool skip 1

   select pool,name,bytes from v$sgastat order by 1,2;

 

 

 

一个sqlplus的小技巧

在sql*plus中敲命令的过程中, 想不起某个列的名字, 如果取消当前的命令,待查询后再重敲, 那太痛苦了. 当然你可以另开一个sql*plus窗口进行查询, 但下面提供的方法更简单.比如说, 你想查名称带"xxx"的业务信息, 输入了下面的语句:
SQL> select icpcode,icpservid
from service
where
这时, 你发现你想不起来业务名称的列名是什么了.这种情况下, 只要在下一行以#开头, 就可以执行一条sql*plus命令, 执行完后, 刚才的语句可以继续输入
SQL> select icpcode,icpservid
from service
where
#desc service
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
ICPCODE                                   NOT NULL VARCHAR2(12)
ICPSERVID                                 NOT NULL VARCHAR2(10)
SERVNAME                                  NOT NULL VARCHAR2(64)
3 servname like '%xxx%';

 

 

 

 

自定义一个符合习惯的基于DOS的sqlplus命令行

由于工作原因,经常要登陆到各个oracle环境解决问题,设置一个实用的sqlplus命令行环境是必要的:
一.首先设置dos窗口最大化,并且能显示尽量多的信息
--cmd窗口布局layout设置
windows任务栏为两栏情况下
Screen Buffer Size:
Width:1250
Height:420
Window Size:
Width:125
Height:42
Window position:
Left:-4
Top:-4
Let System position window:为空
二.在C:/Documents and Settings/yourWindowLoginUserName下新建set.sql:
set serveroutput on size 1000000
set trimspool on
set long 5000
--linesize过大了,使用desc命令显示结果格式很差,set linesize 1后再用desc.
set linesize 10000
set pagesize 42
column plan_plus_exp format a80
column global_name new_value gname
set termout off
select lower(user)||'@'||substr(global_name,1,instr(global_name,'.')-1) global_name from global_name;
set sqlprompt '&gname>'
set termout on
set pause on
三.在C:/Documents and Settings/yourWindowLoginUserName下新建sql33.bat:
sqlplus wacos/oss@orcl.33 @set
四.以后进入dos窗口后,直接敲sql33就进入sqlplus命令行窗口了.
这样以后就单击快捷方式就进入sqlplus命令行界面,该界面的特点是:
窗口最大化,显示尽量多信息
每行记录在一行显示
每显示一屏信息即暂停,按Enter继续显示下一屏
还有其它set.sql里设置好的各种属性

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值