SQL*Plus运行环境
1.显示设置信息命令
显示当前登陆数据库用户的名字
show user
显示SQL*Plus的所有设置信息
show all
如果要显示某个具体的设置信息,可以在show命令之后跟上相关的关键字
显示控制是否统计每个SQL命令的运行时间的参数Timing的状态
show timing
如果要显示数据库服务器的参数设置信息,可以使用show parameter命令。并在命令之后指定要显示的参数名称。(需要权限)
显示当前数据库的名称
show parameter db_name
显示所有包含字符串"db_block"的参数设置信息
show parameter db_block
2. 设置或修改设置信息命令set
格式:
set system_option value
设置每页打印的行数为30行
set pagesize 30
注意:通过set命令设置的环境变量是临时的,当用户退出SQL*Plus后,用户设置信息全部丢失。
设置每行中能够显示的字符的总数为120个(默认为80个)
set linesize 120
注意:如果经常要修改这些设置信息,通常做法是编写一个脚本文件,在脚本文件中指定这些设置信息,然后在SQL*Plus中执行脚本文件。
使用SQL*Plus命令
SQL*Plus命令用于设置查询结果的输出格式,形成复杂的报表,编辑SQL命令,设置系统变量并可提供帮助信息。
注意:SQL*Plus命令不存在缓冲区中,不以分号结束。
1.Help命令
格式:
help [topic]
查看命令的使用方法,topic表示需要查看的命令名称。
2.HOST命令
使用该命令可以从SQL*Plus环境切换到操作系统环境
格式
HOST
HOST vi //LINUX环境
HOST notepad.exe //Windows环境
3.clear screen
清屏操作
4. show
show all
查看SQL*Plus 的所有系统变量值信息
5. Describe
返回数据库中所存储的对象的描述。对于表、视图等对象而言,Desc命令都可以列出其各个列的名称以及各个列的属性。
格式:
Describe object_name
显示表emp的结构信息
desc emp
编辑SQL*Plus命令
SQL*Plus提供了一个命令缓冲区,用来保存最近执行的一条SQL语句,或者是一个PL/SQL块。
用户可以反复执行缓冲区的内容,也可以编辑其内容。
常用编辑命令:
Append text
change /old/new
change /text
clear buffer
del
input
input text
list
list n 显示一行
list * //显示当前行
list last //显示最后一行
list m n //显示多行从m 到n
1.执行缓冲区内容
命令:
/ //执行缓冲区中刚刚输入的或者已经执行的内容
run
练习:1
创建一个表,名为t2
create table t2(id number)
使用/命令再次执行创建表t2的命令
SQL>/
create table t2(id number)
run命令与/一样,却别在于执行前先显示缓冲区中的内容
2.编辑缓冲区内容
缓冲区真正意义在于用户可以编辑其中的内容,这样如果语句执行出错,用户可以很方便地进行修改。尤其是那些特别长,复杂的SQL语句。格式如下:
edit [file_name] //打开默认的编辑器
ed
file_name默认为afiedt.buf,也可以指定一个其他文件。比如:a.sql、b.sql
练习2:
执行Sql语句
select eename from emp;
使用edit命令将缓冲区内容写入默认
edit
在Linux操作系统下,edit命令和Windows有区别,可以使用另外一种方式编辑缓冲区内容
save file_name
vi file_name
get filename
练习3:
select eename from emp;
save a.sql
host vi a.sql
//修改成:select * from scott.emp;
//保存退出
get a.sql
3.显示缓冲区内容
格式:
list
l n
4. 追加缓冲区内容
格式:
append 文本 //在缓冲区当前行的末尾追加文本
input 文本 //在当前行的末尾追加一行或多行文本
change /旧字符串/新字符串
5.清除缓冲区内容
del //清除当前行
del 开始行号 结束行号 //删除开始行号和当前行号之间的行
del 开始行号 * //删除开始行号和当前行号之间的行
del * 结束行号 //删除当前行号和结束行号之间的行
del last //删除最后一行
6. 对操作系统文件读写
1.读文件命令
@ //将指定的文本文件的内容读到内存,允许多条SQL命令,每条以分号结束
@ 文件名
@ http://web服务器/文件名
sqlplus 用户名/口令 @ 文件名
get //与@相似,只是把文件加载到缓冲区,并不直接执行,只能包含一条SQL语句,不能一分号结束
get 文件名 选项[list/nolist]
start //与@等价
2. 写文件
save //将当前缓冲区内容写入一个操作系统文件
save 文件名 选项[create/append/repleace]
spool //将命令执行结果输出到一个操作系统文件
spool
spool 文件名
spool off
spool out
注意:如果以执行了spool命令,那么从执行spool命令并打开文件开始,此后所有的输出,包括错误信息,用户的键盘输入,都将写入指定文件,直到遇到spool off或者spool out。
spool命令通常的用法是做报表。首先精心设计报表的页面格式,将其SQL语句存放在一个文件中,在产生输出的语句前后加上spool命令,然后将这个文件读入缓冲区中执行。