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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |