SQL*PLUS常用命令
1、 HOST
键入HOST命令能够从SQL*PLUS环境切换到操作系统环境,以便执行操作系统命令,按Ctrl+D能回到SQL*PLUS状态。
2、 DISCONNECT 和CONNECT
DISCONNECT 命令顾名思义,就是断开当前用户与ORACLE的连接,然后,你可以键入CONNECT命令,用另外一个用户名进入。
3、 SHOW
用SHOW ALL命令可以查看SQL*PLUS的68个系统变量值。用SHOW USER命令可以查看当前是哪个用户在使用SQL*PLUS
show sga:显示sga大小
show rel[ease]:显示数据库版本信息
show user:显示当前的用户名
4、 DESCRIBE(DESC)
DESCRIBE或DESC命令可以查看对象的结构,这里的“对象”可以是表、视图,存储过程、函数、包等。比如键入DESC DUAL,你就可以发现DUAL表只有一列。
5、 SAVE filename[.ext] [create|replace|append]
ext:文件后缀,缺省为sql
每当你在SQL*PLUS中执行一条或若干条SQL语句,ORACLE就会把这些刚执行过的语句存放到一个称为“缓冲区”的地方。每一次执行SQL语句,该语句就会存入缓冲区而把以前的覆盖。也就是说,缓冲区中存放的是刚才执行过的SQL语句。
用SAVE filename 命令可以把当前缓冲区中的内容存入文件中,其中,filename是你所取的文件名。
6、 GET filename
该命令将文件中的内容取出来防至缓冲区。
因此,你可用Vi或别的编辑器写好你需要执行的语句,然后用GET命令将这些语句取至缓冲区执行。
7、 /
斜杠“/”也是一个SQL*PLUS命令,它显示缓冲区中的内容并执行。
8、 RUN(R)
这两个命令和“/”一样。
9、 @
该命令直接执行缓冲区中的命令,但并不将它显示在屏幕上。
10、L
列出缓冲区中的内容,但并不执行。
11、L n
列出缓冲区中第n行的内容。
12、CHANGE(C)
C/string1/string2可以将缓冲区中当前行的string1字符串替换为string2 字符串。
13、A
把文本添加到缓冲区中当前行的末尾。
14、DEL
删除缓冲区中当前行。
15、I
在当缓冲区中当前行的后面插入一行。
16:Set
set timing on|off 打开或关闭显示sql命令执行时间
set autotrace on|off 打开或关闭sql命令监控分析
set echo on|off 在用start命令执行一个sql脚本时,是否显示脚本正在执行的SQL语句
set feedback on|off 显示当前sql查询或修改的行数
set autocommit on|off
17:spool 实现将屏幕的一切信息记录到操作系统的文件中直到spool off
spo[ol] [filename[.ext]|off|out]
out:启动该功能
.ext 缺省为lst或lis
下面举一个简单的例子,来讲解一些缓冲区编辑命令的使用方法。
假设你输入下面的这些命令:
SQL > SELECT name FROM tab_student
2> WHERE num AT
3> (SELECT num FROM tab_top_student );
你会发现语句有错,你需要修改它。这些语句已经存至缓冲区,你不必再次输入。
键入L命令,得到如下显示:
SQL > SELECT name FROM tab_student
2> WHERE num AT
3*> (SELECT num FROM tab_top_student );
注意第三行,有一个*号,表示这是当前行,键入L 2,得到如下显示:
2*> WHERE num AT
即把第二行变为当前行。
键入 C/AT/IN,得到如下显示:
2*> WHERE num IN
键入L查看一下缓冲区中所有内容:
SQL > SELECT name FROM tab_student
2> WHERE num IN
3*> (SELECT num FROM tab_top_student );
注意,这时第二行已经修改好,第三行为当前行。
好了,键入R运行这些语句即可。
向aaa.sql文件保存缓存区的内容
sql>select * from dept order by deptno