shell 中利用sqlplus 执行sql脚本的简便方式

前端之家收集整理的这篇文章主要介绍了shell 中利用sqlplus 执行sql脚本的简便方式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

有时候必须在shell中执行sql脚本,下面列举shell 中利用sqlplus 执行sql脚本的简便方式


$ cat sql/test.sql

SET pagesize 0

SET heading OFF

SET Feedback OFF

SET verify OFF

select &1 from &2;

QUIT;



sqlplus / as sysdba @sql/test.sql sysdate dual


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



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

$cat sql/tes2.sql

SET pagesize 0

SET heading OFF

SET Feedback OFF

SET verify OFF

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

commit;

QUIT;


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

sqlplus "scott/tiger@test" @sql/tes2.sql 10 10



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


$ cat sql/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" @sql/test3.sql 10

猜你在找的Bash相关文章