加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 09:23:36 所属栏目:安全 来源:网络整理
导读:有时候必须在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 注意:

有时候必须在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读