Welcome 微信登录

首页 / 数据库 / MySQL / SQL*Plus 执行脚本时传递参数(@script_name var1,var2)

在使用sqlplus执行sql脚本时,经常碰到向脚本传递参数的情形。类似于shell脚本的参数传递,我们同样可以向sql脚本传递参数,其方法是脚本后面直接跟多个连续的参数并以空格分开。本文描述该内容并给出示例。1、SQLPlus 的帮助信息  下面的帮助信息是关于sqlplus调用带参脚本的说明
  sqlplus -H
 
  <start> is: @<URL>|<filename>[.<ext>] [<parameter> ...]
 
      Runs the specified SQL*Plus script from a web server (URL) or the
      local file system (filename.ext) with specified parameters that
      will be assigned to substitution variables in the script.2、shell 提示符下sqlplus调用带参脚本SQL> select * from v$version where rownum<2;BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionSQL> insert into emp(empno,ename,job) select 8888,"Bob Cheng","DBA" from dual;SQL> commit;[oracle@linux1 ~]$ more test.sql
set linesize 160
select empno,ename,job from &1 where upper(ename)=upper("&2");
exit;[oracle@linux1 ~]$ sqlplus scott/tiger@rac11g @test.sql emp scottold  1: select empno,ename,job from &1 where upper(ename)=upper("&2")
new  1: select empno,ename,job from emp where upper(ename)=upper("scott")    EMPNO ENAME      JOB
---------- ---------- ---------
      7788 SCOTT      ANALYST--注意,对于含有空格的调用需要使用单引号或双引号,如下示例
[oracle@linux1 ~]$ sqlplus scott/tiger @test.sql emp "bob cheng" old  1: select empno,ename,job from &1 where upper(ename)=upper("&2")
new  1: select empno,ename,job from emp where upper(ename)=upper("bob cheng")    EMPNO ENAME      JOB
---------- ---------- ---------
      8888 Bob Cheng  DBA[oracle@linux1 ~]$ sqlplus scott/tiger @test.sql emp "bob cheng"     
  • 1
  • 2
  • 3
  • 4
  • 下一页
Oracle 等待事件替代变量与SQL*Plus环境设置相关资讯      SQL*PLUS 
  • Oracle基础介绍及常用相关SQL*PLUS  (03月11日)
  • Linux 下如何 sql*plus 实现上下键  (01/21/2014 14:03:29)
  • SQL*Plus copy 命令处理大批量数据  (05/02/2013 17:43:20)
  • 在sql*plus中如何查看一些命令的用  (02/19/2015 15:50:02)
  • SQL*Plus break与compute的简单用  (05/02/2013 17:48:07)
  • SQL*PLus 帮助手册(SP2-0171)  (04/26/2013 08:29:38)
本文评论 查看全部评论 (0)
表情: 姓名: 字数