Oracle 常用的SQL Plus 命令

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/God_XiangYu/article/details/80885854

第一章:Oracle 11g 常用的SQL Plus 命令

使用查询、插入、删除、update 等等类似 sql 的语句的时候需要加;结尾。

  • Connect:切换连接用户,简写形式conn
  • Show user:显示当前登录的用户
  • Host< dos命令 >:执行操作系统命令
  • Spool:导出记录到文本
  • Clear screen:清屏
  • Start d:\test.sql 执行文件系统中的SQL语句(注:start 命令等同于@,即:@d:\test.sql)
  • Desc:显示表结构
  • Show error:显示错误信息
  • passw[ord]:该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system 登陆
    • 注意:以高级用户重置低级用户的密码
    • 普通用户也可以给自己重置密码( 前提:普通用户得知道自己得密码 )
  • disc[onnect]:该命令用来断开与当前数据库的连接
  • Exit:退出

交互式命令

  • &

    说明:可以替代变量,而该变量在执行时,需要用户输入。sql>select * from emp where job=’&job’

  • edit

    说明:该命令可以编辑指定的sql脚本
    案例:sql>spool d:\b.sql

  • spool

    说明:该命令可以将sql*plus 屏幕上的内容输出到指定文件中去
    案例:sql>spool d:\b.sql 并输入 sql>spool off

文件操作命令

1、start

    调用外部的脚本
    在磁盘(E(某)磁盘)存放了 select * from dept; 的语句,并保存为dept.sql
    sql>start    e:\dept.sql

2、edit

    说明:该命令可以编辑指定的脚本
    sql>edit e:\dept.sql
    在打开sql 脚本里去编辑的 sql 脚本

3、spool

    说明:该命令可以将sqlplus 屏幕上的内容输出到特定文件里
    sql>spool    e:\dept.sql
    sql>select * from dept;
    sqlspool   off

    注意:当 spool off 后,才把所有的输出写入到外部dept.sql 文件里

4、&

    解释:可以替代变量,变量的值有交互时由用户输入
    sql>select * from dept DNAME='&DNAME';
    sql>根据提示输入相应的值:例如 SALES

显示与设置环境变量( 用途:控制输出命令结果的格式 )

  • 1、linesize

    用途:设置显示行的宽度,默认是80 个字符
    sql>show linesize
    sql>set linesize 520

  • 2、pagesize

    用途:设置每页显示的行数目,默认是14
    sql>show pagesize
    sql>set pagesize 40

1:查看当前用户的环境设置:

SQL> define

DEFINE _DATE           = "21-JAN-14" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "updb" (CHAR)
DEFINE _USER           = "SCOTT" (CHAR)
DEFINE _PRIVILEGE      = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1102000300" (CHAR)
DEFINE _EDITOR           = "ed" (CHAR)
DEFINE _O_VERSION      = "Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR)
DEFINE _O_RELEASE      = "1102000300" (CHAR)
SQL> 

2:当前用户设置环境:

SQL> define_editor = 'VI';
SQL> define

DEFINE _DATE           = "21-JAN-14" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "updb" (CHAR)
DEFINE _USER           = "SCOTT" (CHAR)
DEFINE _PRIVILEGE      = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1102000300" (CHAR)
DEFINE _EDITOR           = "VI" (CHAR)
DEFINE _O_VERSION      = "Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR)
DEFINE _O_RELEASE      = "1102000300" (CHAR)
SQL> 

3:编辑login.sql 

 当退出当前用户的时候,所设置的环境就自动恢复成默认值,可以在login.sql文件中做设置,就不用每次都手动修改:

[oracle@steven ~]$ cat login.sql
define_editor=vi
set serveroutput on size 1000000
set trimspool on
set long 5000
set linesize 100
set pagesize 9999
column plan_plus_exp format a80
column global_name new_value gname
set termout off
define gname=idle
column global_name new_value gname
select lower(user) || '@' || substr(global_name,1,decode( dot,0,length(global_name),dot-1))global_name
from (select global_name,instr(global_name,'.') dot from global_name);
set sqlprompt '&gname> '
set termout on

4:对login.sql脚本进行说明

# 设置SQL*Plus 使用的默认编辑器。可以把它设置为你中意的文本编辑器。
define_editor=vi

# 默认的打开DBMA_OUTPUT,设置缓冲区的大写尽可能大。
set serveroutput on size unlimited

# 假脱机输出文件时,会去除问本行两端的空格,而且行宽不定,如果设置为OFF,假脱机输出文件宽度则等于所设置的linesize。
set trimspool on

# 设置选择LONG和CLUB列时显示的默认字节数。
set long 5000

# 设置SQL*Plus显示的文本行宽为100个字符。
set linesize 100

# pagesize可以控制SQL*Plus多久打印一次标题。
set pagesize 9999

# 设置由AUTOTRACE得到的解释计划输出的默认宽度。a80通常足以放下整个计划。
column paln_plus_exp format a80

# 这部分用于简历SQL*Plus的提示符,告诉SQL*Plus取得global_name列中的最后一个值,并将这个值赋给变量gname.
select lower(user) || '@' || substr(global_name,1,decode( dot,0,length(global_name),dot-1))global_name
from (select global_name,instr(global_name,'.') dot from global_name);
set sqlprompt '&gname> '

猜你喜欢

转载自blog.csdn.net/God_XiangYu/article/details/80885854