我有一个Oracle SQL脚本,想将输入参数传递给脚本执行。 我怎么做到这一点?
说我有日期参数testdate。这就是我们在sql server中的做法
declare @testdate as date
select * from test where testdate=@testdate
基本上我在一个需要执行的块中有一组sql语句。
答案 0 :(得分:1)
您可以将其作为参数传递给SQL脚本,并在SQL * Plus中调用它。
例如,
我的脚本 emp.sql 看起来像 -
select ename from emp where empno=&1
现在,我将在 SQL * Plus 中调用它,将empno作为参数传递。
SQL> @D:\emp.sql 7369
old 1: select ename from emp where empno=&1
new 1: select ename from emp where empno=7369
ENAME
----------
SMITH
SQL>
同样,对于日期参数 -
SQL> @D:\emp.sql sysdate
old 1: select ename from emp where hiredate<=&1
new 1: select ename from emp where hiredate<=sysdate
ENAME
----------
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
ENAME
----------
JAMES
FORD
MILLER
14 rows selected.
SQL>
对于字符串类型,您需要使用单引号。例如 -
SQL> @D:\emp.sql SCOTT
old 1: select empno from emp where ename='&1'
new 1: select empno from emp where ename='SCOTT'
EMPNO
----------
7788
SQL>