SQL*Plus 执行脚本时传递参数(@script_name var1,var2)
Jun 07, 2016 pm 04:46 PM在使用sqlplus执行sql脚本时,经常碰到向脚本传递参数的情形。类似于shell脚本的参数传递,我们同样可以向sql脚本传递参数,其方
在使用sqlplus执行sql脚本时,经常碰到向脚本传递参数的情形。类似于shell脚本的参数传递,我们同样可以向sql脚本传递参数,其方法是脚本后面直接跟多个连续的参数并以空格分开。本文描述该内容并给出示例。
1、SQLPlus 的帮助信息
下面的帮助信息是关于sqlplus调用带参脚本的说明
sqlplus -H
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
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 upper(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"

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까?

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다.

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음)

일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까?
