用户不必在每次使用数据库的时候都编写常用的 SQL 语句和 PL/SQL 程序块,而是可以将它们保存到称为脚本的文件中。这些脚本专门为反复执行的各种任务而设计。
这里主要介绍如何编写脚本、运行脚本。
1 编写脚本
使用一种文本编辑器来编写 SQL 脚本,比如 notepad 文本等。
一个简单的脚本例子,在文本中编写脚本并保存为 D:\test.sql,内容如下:
drop table t01;
create table t01(c1 varchar(100), c2 varchar(100));
begin
for i in 1..10 loop
insert into t01 values('a'||i, 'b'||i);
end loop;
end;
/
2 使用 START 命令运行脚本
运行脚本必须使用<start>命令。<start>命令中与脚本有关的是<`运行脚本>和<start 运行脚本>。<直接执行语句>在 DIsql 登录时候使用,与脚本无关,此处不做介绍。
语法如下:
<start>::=<`运行脚本>|<start 运行脚本>|<直接执行语句>
<`运行脚本>::=`<file_path> [<PARAMETER_VALUE>{ <PARAMETER_VALUE>}]
<start 运行脚本>::=START <file_path> [<PARAMETER_VALUE>{ <PARAMETER_VALUE>}]
<直接执行语句>::= -E “<SQL 语句>{;<SQL 语句>}”
<file_path>:脚本的绝对路径。
<PARAMETER_VALUE>:传递进入脚本的参数值。
脚本可以在启动 DIsql 时就运行,或者在进入 DIsql 之后再运行。如果在启动时运行,只能使用<`运行脚本>;如果在进入 DIsql 之后,使用<`运行脚本>或者<start 运行脚本>来运行脚本都可以。
<`运行脚本>中的符号`位于键盘第二排左起第一个。
如果在 LINUX 环境下使用<`运行脚本>,则符号`需要加\或'进行转义。
例如:./disql SYSDBA/SYSDBA\`/dev/test.sql
1.启动 DIsql 时,运行脚本。
DIsql SYSDBA/SYSDBA `D:\test.sql
执行结果如下:
启动 DIsql 时运行脚本结果
2. 进入 DIsql 之后,运行脚本。
SQL>start D:\test.sql 或 SQL>`D:\test.sql
执行结果如下:
进入 DIsql 后运行脚本结果
DISQL 在运行完脚本后会自动执行一个提交动作
3 使用 EDIT 命令编辑脚本
DIsql 中使用 EDIT 命令来编辑指定的脚本文件。
语法如下:
ED[IT][<file_name>]
<file_name>:指定待编辑的脚本文件。
如果指定文件不存在,则创建该文件。
如果省略文件<file_name>,则只会修改缓冲区中的最后一条 SQL 语句。DIsql 自动打开系统缺省的文本编辑器(WINDOWS 下使用 notepad),复制缓冲区中最后一条SQL 语句到文本中,这时用户可以对其中的内容进行编辑。修改完成之前,DIsql 一直处于等待状态。修改完毕,保存文件后,被修改的内容就会被写入缓存区。这对于修改错误命令很方便。当操作系统为 LINUX 或 UNIX 时,使用 vi 进行编辑。示例如下:
SQL>EDIT D:\test.sql 或 SQL>edit