常用SQL*Plus命令

常用SQL*Plus命令

1. HELP命令

向用户提供被查询命令的标题、功能描述、缩写形式和参数选项(包括必选参数和可选参数)等信息。


格式:HELP|? [topic]


“?”:表示一个命令的部分字符,这样就可以通过提供命令的部分字符以模糊查询的方式来查询命令格式。
topic:表示将要查询的命令的完整名称。


查看SQL*Plue命令清单:
 

 

2. DESCRIBE命令

查询指定数据对象的组成结构。比如,通过DESCRIBE命令查询表和视图结构,查询结果就可以列出其各个列的名称、是否为空及类型等属性。


格式:desc[ribe] object_name;


object_name:表示将要查询的对象名称。


例:通过DESCRIBE命令查看dba_tablespaces数据字典表(用来存储表空间信息的内部表)的结构。
 

 
例:在scott.com表中查询销售员(SALESMAN)的编号、姓名和工资,在编写SQL语句的过程中,使用“#desc scott.emp”命令查询scott.emp表中工资字段的名称(sal):
 

 

说明:DESCRIBE命令不仅可以查询表、视图的结构,而且还可以查询过程、函数和程序包等PL/SQL对象的规范。

 

3. SPOOL命令

SPOOL命令可以把查询结果输出到指定文件中,这样可以保存查询结果并方便打印。

 

格式:SPO[OL] [file_name[.ext] [CRE[ATE]|REP[LACE]|APP[END]|OFF|OUT]

 

file_name:指定脱机文件的名称,默认的文件扩展名为LST。在该参数后面可以跟一个关键字。
CRE[ATE]:表示创建一个新的脱机文件,这也是SPOOL命令的默认状态。
REP[LACE]:表示替代已经存在的脱机文件。
APP[END]:表示把脱机内容附加到一个已经存在的脱机文件中。
OFF|OUT:表示关闭SPOOL输出。

 

例:使用SPOOL命令创建emp.txt文件,并将scott.emp表中的销售员(SALESMAN)的记录保存到该文件中:
 

 

注意:只有使用SPOOL OFF或SPOOL OUT命令关闭输出,才会在输出文件看到输出的内容,否则输出文件中无内容或无更新内容。

 

4. DEFINE命令

定义一个用户变量并且可以分配给它一个CHAR值。


格式:DEF[INE] [variable]|[variable=text]


variable:表示定义的变量名。

text:变量的CHAR值。


例:使用define命令定义vjob变更,并给它分配一个CHAR值“‘SALESMAN’”:

SQL> define vjob=’SALESMAN’
SQL>define vjob
DEFINE VJOB = “SALESMAN”(CHAR) 

 

5. SHOW命令

 

该命令用来显示SQL*Plus系统变量的值或SQL*Plus环境变更的值。

 

格式:SHO[W] option

 

option:表示要显示的系统选项,常用的选项有ALL、PARAMETERS[parameter_name]、SGA、SPOOL、USER等。

 

例:使用show命令显示当前数据库实例的数据块大小:
 

 

6. EDIT命令

SQL语句或PL/SQL块在执行完毕之后,可以被存储在一个被称为SQL缓冲区的内存区域中,用户可以从SQL缓冲区中重新调用、编辑或运行那些最近输入的SQL语句。若要编辑SQL缓冲区中的最近一条SQL语句或PL/SQL块,即可以在SQL*Plus环境中直接编辑,也可以使用EDIT命令实现在记事本中编辑。EDIT命令用来编辑SQL缓冲区或指定磁盘文件中的SQL语句或PL/SQL块。

 

格式:ED[IT] [file_name[.ext]]

 

file_name:表示要编辑的磁盘文件名。若在SQL*Plus中只输入“EDIT”命令,而不指定file_name参数的值,则表示编辑SQL缓冲区中的最近一条SQL语句或PL/SQL块。

 

执行EDIT命令后,SQL*Plus工具将打开一个包含有SQL语句或PL/SQL块的记事本,用户就可以在记事本环境下编辑SQL语句或PL/SQL块。如果要执行SQL缓冲区中最近一条SQL语句,可以使用运行命令“/”来执行,简化操作。

 

7. SAVE命令

该命令实现将SQL缓冲区中的最近一条SQL语句或PL/SQL块保存到一个文件中。
 

格式:SAVE file_name
 

file_name:表示要保存的文件名,如果不为保存的文件指定路径,则该文件会保存在Oracle系统安装的主目录中(不建议)。如果不为保存的文件指定扩展名,由默认扩展名为“.sql”,即保存为一个SQL脚本文件。
 

例:使用SAVE命令保存SQL缓冲区中的SQL语句到“d:\dept.sql”文件中:
 

 
技巧:如果要清空缓冲区中的内容,可以使用clear buffer命令。

 

8. GET命令

该命令实现把一个SQL脚本文件的内容放进SQL缓冲区。

 

格式:GET [FILE] file_name[.ext] [LIST|NOLIST]
 

filename:要检索的文件名,如果省略了文件的扩展名,则默认文件的扩展名为“.sql”。
LIST:指定文件的内容加载到缓冲区时显示文件的内容。
NOLIST:指定文件的内容加载到缓冲区时不显示文件的内容。

 

执行GET命令时,如果file_name参数不包括被检索文件的路径,则SQL*Plus工具会在Oracle系统安装的主目录下检索指定文件。在SQL*Plus找到指定文件后,会把文件中的内容加载到SQL*Plus缓冲区,并显示该文件的内容。
 

例:首先在“d:\dept.sql”文件中写入SQL脚本,然后通过GET命令将“d:\dept.sql”文件的内容加载到SQL*Plus缓冲区,最后使用运行命令“/”执行SQL*Plus缓冲区的语句:
 

 

9. START和@命令

这两个命令都可以用来执行一个SQL脚本文件。
 

格式:STA[RT] {url|file_name[.ext]} [arg…]
           @{url|file_name[,ext]} [arg…]
 

url:表示要执行的SQL脚本文件的路径。
file_name:表示包含SQL脚本的文件名。
arg:其他参数。
 

例:使用START命令执行包含有“select count(*) from scott.emp;”SQL脚本的emp.txt文件: