• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

SQL*Plus 执行脚本时传递参数(@script_name var1,var2)

mysql 搞代码 4年前 (2022-01-09) 24次浏览 已收录 0个评论

在使用sqlplus执行sql脚本时,经常碰到向脚本传递参数的情形。类似于shell脚本的参数传递,我们同样可以向sql脚本传递参数,其方

在使用sqlplus执行sql脚本时,经常碰到向脚本传递参数的情形。类似于shell脚本的参数传递,我们同样可以向sql脚本传递参数,其方法是脚本后面直接跟多个连续的参数并以空格分开。本文描述该内容并给出示例。

1、SQLPlus 的帮助信息

下面的帮助信息是关于sqlplus调用带参脚本的说明
sqlplus -H

is: @|[.] [ …]

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 Production

SQL> 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 u本文来源gao@daima#com搞(%代@#码@网&pper(ename)=upper(‘&2’);
exit;

[oracle@linux1 ~]$ sqlplus scott/tiger@rac11g @test.sql emp scott

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(‘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”


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:SQL*Plus 执行脚本时传递参数(@script_name var1,var2)

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址