oracle声明同一sql多次使用,如何声明变量并在同一SQL脚本中使用它? (Oracle SQL)...

在SQL * Plus脚本中声明变量有几种方法。

第一个是使用VAR。将值分配给VAR的机制是使用EXEC调用:

SQL> var name varchar2(20)

SQL> exec :name := 'SALES'

PL/SQL procedure successfully completed.

SQL> select * from dept

2 where dname = :name

3 /

DEPTNO DNAME LOC

---------- -------------- -------------

30 SALES CHICAGO

SQL>

当我们要调用具有OUT参数或函数的存储过程时,VAR特别有用。

替代性,我们可以使用替代变量。这些都适合于交互模式:

SQL> accept p_dno prompt "Please enter Department number: " default 10

Please enter Department number: 20

SQL> select ename, sal

2 from emp

3 where deptno = &p_dno

4 /

old 3: where deptno = &p_dno

new 3: where deptno = 20

ENAME SAL

---------- ----------

CLARKE 800

ROBERTSON 2975

RIGBY 3000

KULASH 1100

GASPAROTTO 3000

SQL>

当我们编写一个调用其他脚本的脚本时,可以预先定义变量:

SQL> def p_dno = 40

SQL> select ename, sal

2 from emp

3 where deptno = &p_dno

4 /

old 3: where deptno = &p_dno

new 3: where deptno = 40

no rows selected

SQL>

最后还有匿名的PL / SQL块。如您所见,我们仍然可以通过交互方式为声明的变量赋值:

SQL> set serveroutput on size unlimited

SQL> declare

2 n pls_integer;

3 l_sal number := 3500;

4 l_dno number := &dno;

5 begin

6 select count(*)

7 into n

8 from emp

9 where sal > l_sal

10 and deptno = l_dno;

11 dbms_output.put_line('top earners = '||to_char(n));

12 end;

13 /

Enter value for dno: 10

old 4: l_dno number := &dno;

new 4: l_dno number := 10;

top earners = 1

PL/SQL procedure successfully completed.

SQL>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值