oracle 命名块

今天看书然后写敲了一个代码但是在seqplus 里面能执行,而plsql里面不能执行,就网上看了一下。

<<outer>>
declare
       v_deptno number(2);
       v_dname  varchar2(10);
begin
<<inner>>
begin
       select deptno into v_deptno from emp where lower(ename)=lower('&name');
end;   --<<inner>>
       select dname into v_dname from dept where deptno=v_deptno;
       dbms_output.put_line('部门名:'||v_dname);
end;--<<outer>>

  发现是少了两个开头,

declare

begin

end;

同样的代码,plsql就可以执行了。

--命名块
declare
begin
<<outer>>
declare
       v_deptno number(2);
       v_dname  varchar2(10);
begin
<<inner>>
begin
       select deptno into v_deptno from emp where lower(ename)=lower('&name');
end;   --<<inner>>
       select dname into v_dname from dept where deptno=v_deptno;
       dbms_output.put_line('部门名:'||v_dname);
end;--<<outer>>
end;

  

原文地址:https://www.cnblogs.com/zerocc/p/2115125.html