您的位置:首页 > 数据库

sqlplus执行脚本文件时如何传参数

2011-11-01 21:55 447 查看
d:\test.sql脚本如下:

select &1 from &2;
exit;


执行时这样传参数:sqlplus "scott/tiger@test" @d:\test.sql sysdate dual

注意:参数必须用&[1-9]表示,不然传不进去,会提示让手动输入参数

C:\>sqlplus "scott/tiger@test" @d:\test.sql sysdate dual

D:\>sqlplus "scott/tiger@test" @d:\test.sql sysdate dual

SQL*Plus: Release 11.2.0.1.0 Production on 星期二 11月 1 21:59:00 2011

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

原值    1: select &1 from &2
新值    1: select sysdate from dual

SYSDATE
--------------
01-11月-11

从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断
开

D:\>


如果脚本中有重复用到相同的值,如果&1=&2:

d:\tes2.sql

delete scott.emp where no=&1  or deptno=&2;
commit;


执行时,就必须传2个参数:

sqlplus "scott/tiger@test" @d:\test2.sql 10 10


小窍门: 这时用procedure就可以不用传多个相同的参数,则只用传1个参数:

d:\test3.sql

declare
var_no number:=&1;
begin
delete scott.emp where no=var_no or deptno=var_no;
commit;
end;


sqlplus "scott/tiger@test" @d:\test3.sql 10
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: