在oracle里运行脚本文件的方式有两种:start命令、@命令。
start的语法:
start filename[.ext] [arg1 arg2 arg3...]
- 其中filename[.ext]表示要运行的脚本文件,如果省略文件扩展名,SQL*Plus就是用默认的文件脚本扩展名,通常为".sql"。SQL*Plus先在当前文件夹下查找filename[.ext],如果没有就在sqlpath环境变量定义的文件夹中查找。可以指定脚本文件的全路径名,如:d:\mysql\script.sql,也可以是http://host:domain/script.sql。
- [arg1 arg2 arg3...]表示希望传递给脚本文件的参数。脚本文件中的替换参数必须使用如下格式声明:&1、&2、&3等。如果输入一个或多个参数,SQL*Plus将使用这些值替换脚本文件中的替换参数,arg1代替所有的&1,arg2代替所有的&2,arg3代替所有的&3依次类推。如果在start命令中没有提供替换值,则在运行时需要交互输入。
如脚本d:\mysql\script01.sql内容如下:
select ename,sal from emp
where deptno=&1
and sal=&2
使用start命令运行的方式和结果:
SQL>start d:\mysql\script01.sql 20 2500
原值 2:where deptno=&1
新值 2:where deptno=20
原值 3:and sal=&2
新值 3:and sql=2500
ename sal
----------------------------------
jones 2975
scott 3000
ford 3000
@命令的功能与start命令类似,区别在于@命令既可以在SQL*Plus中运行又可以在系统命令提示符中运行,而start命令只能在SQL*Plus里运行。