首页 百科知识 编辑和执行命令

编辑和执行命令

时间:2022-10-09 百科知识 版权反馈
【摘要】:在结束语句输入状态后,用户可以调用SQL﹡Plus编辑命令修改SQL缓冲区中的数据。常用SQL﹡Plus编辑命令如表5-3所示。在编辑SQL﹡Plus命令时,命令后不必添加分号,只需按Enter键SQL*Plus即解释执行所输入的SQL*Plus命令。需要混合执行二者时,只能通过创建SQL*Plus命令文件,然后再执行命令文件的方法来解决。EDIT命令调用外部文本编辑器,将要编写的命令存入SQL缓冲区,之后执行SAVE命令将SQL缓冲区中内容写入命令文件。默认时,GET命令列出它所调入的命令文本。

5.3 编辑和执行命令

5.3.1 编辑和执行语句

在SQL﹡Plus提示符(SQL>)下,用户即可输入和编辑SQL语句、PL/SQL语句块或SQL﹡Plus命令。对于SQL语句和PL/SQL语句块,如果一行输入不完时,可以分多行输入,只要语句中每个单词不被分行即可。例如,下面两种输入是完全等价的:

第一种:

SQL>SELECT*FROM dept;

第二种:

SQL>SELECT*

2 FROM dept

SQL>

用户输入SQL语句时,有以下三种方法结束一条SQL语句的输入:

(1)在语句结尾输入一分号(;):这种方法不仅结束SQL语句的输入,并指示SQL*P1us

立即解释执行所输入SQL语句。例如:

SELECT*FROM dept;

该语句执行结果如图5-24所示。

img92

图5-24 执行结果

(2)输入一空行。这种方法只结束SQL语句的输入,但不执行该语句,所输入的内容保存在SQL*Plus的SQL缓冲区中。例如:

SQL>SELECT*

2 FROM dept

3 WHERE deptno<30

执行结果如图5-25所示。

img93

图5-25 执行结果

(3)在一新行开始立即输入一斜杠(/)。这种方式与第一种方式相同,它不仅结束SQL语句的输入,而且使SQL*P1us立即执行已输入的内容。例如:

SQL>SELECT * FROM dept

2/

执行结果如图5-26所示。

img94

图5-26 执行结果

第三种方法与第一种方法不同的是:斜杠(/)结束符只能在一新行的开始输入,其前不能输入任何字符,包括空格和TAB制表符等。否则,SQL*Plus将斜杠(/)结束符认为是SQL语句的一部分,而不退出输入状态。例如:

SQL>SELECT*FROM dept

2/

3

SQL>

执行结果如图5-27所示。

img95

图5-27 执行结果

与SQL语句不同,PL/SQL语句块结束输入的方法不能使用分号和空行,用户只能在一新行中输入点(.)才能结束PL/SQL语句块的输入。后面介绍PL/SQL语言时将详细介绍PL/SQL语句块的语法结构。

结束输入后,在SQL﹡Plus提示符(SQL>)下输入斜杠(/)或RUN命令即可执行SQL缓冲区中的语句。二者不同的是:斜杠(/)只执行命令,而不列出缓冲区中的内容,而RUN命令在执行前先列出SQL缓冲区中的所有语句。例如(其中黑体部分为输入内容):

SQL>SELECT*FROM DEPT

2

SQL>/

执行结果如图5-28所示。

img96

图5-28 执行结果

SQL>RUN

执行结果如图5-29所示。

img97

图5-29 执行结果

无论采用哪种方法结束SQL语句或PL/SQL块的输入,用户所输入的内容均存储在SQL*Plus开辟的内存缓冲区中,该内存区域称作SQL缓冲区。当用户再次输入新的SQL语句或PL/SQL块时,SQL*Plus将刷新SQL缓冲区。但在交互方式下,用户所输入的SQL﹡Plus命令并不刷新SQL缓冲区。

在SQL语句和PL/SQL语句块输入状态,用户按Enter键后将把当前所编辑行内容存入SQL缓冲区。在结束当前命令输入状态之前,用户不能编辑已存入SQL缓冲区的语句。对于当前的编辑行,用户只能使用退格键(Backspace)删除。在结束语句输入状态后,用户可以调用SQL﹡Plus编辑命令修改SQL缓冲区中的数据。常用SQL﹡Plus编辑命令如表5-3所示。

表5-3 SQL*Plus编辑命令

img98

续表

img99

5.3.2 命令文件操作

在编辑SQL﹡Plus命令时,命令后不必添加分号,只需按Enter键SQL*Plus即解释执行所输入的SQL*Plus命令。

在交互方式下,SQL语句和PL/SQL块不能与SQL*Plus命令混合编辑执行。需要混合执行二者时,只能通过创建SQL*Plus命令文件,然后再执行命令文件的方法来解决。

创建SQL*Plus命令文件的方法有很多,其中主要包括:

(1)直接使用纯文本编辑器建立命令文件。

(2)执行SQL*Plus的。EDIT命令调用外部文本编辑器,将要编写的命令存入SQL缓冲区,之后执行SAVE命令将SQL缓冲区中内容写入命令文件。SAVE命令的语法格式为:

SAV[E]file_name[.ext][REP[LACE]│[END]]

其中:

File_name和ext参数:分别说明命令文件名称及其扩展名,默认时命令文件扩展名为.sql。

REP[LACE]选项:说明当指定的命令文件存在时,SQL*Plus用新建立的命令文件内容替换原文件中的内容。APP[END]参数说明将新的命令文件内容追加到原文件后面,不覆盖原文件中的内容。如果既不指定REP[LACE]选项,也不使用APP[END]选项,当所指定的命令文件已经存在时,将导致SAVE命令执行失败。

建立命令文件后执行GET命令可以将命令文件内容调入SQL缓冲区。GET命令的语法格式为:

GET file_name[.ext][LIS[T]│NOL[IST]

其中:

File_name和ext参数:分别说明所调入的命令文件名及其扩展名。

LIST'[T]和NOL[IST]选项:分别说明在调人命令文件后是否列表显示新调入到SQL缓冲区中的命令文件内容。默认时,GET命令列出它所调入的命令文本。

用户创建的命令文件可以采用以下方法执行:

(1)作为SQL*Plus启动文件执行。

(2)执行START或@命令执行,这两个命令的语法格式为:

STA[RT]file_name[.ext][arg…]

@file_name[.ext][arg…]

其中:

File_name和ext参数:分别说明所执行的命令文件名及其扩展名。

arg…:给出命令文件所用参数值。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈