3,490
社区成员
发帖
与我相关
我的任务
分享
<<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('deptno:' ||v_dname);
end;
--<<outer>>
BEGIN
<<outer_loop>>
FOR i IN 1..3 LOOP -- assign the values 1,2,3 to i
<<inner_loop>>
FOR i IN 1..3 LOOP
IF outer_loop.i = 2 THEN
DBMS_OUTPUT.PUT_LINE( 'outer: ' || TO_CHAR(outer_loop.i) || ' inner: '
|| TO_CHAR(inner_loop.i));
END IF;
END LOOP inner_loop;
END LOOP outer_loop;
END;
--你的
declare
<<outer>>
declare
v_deptno number(2);
v_dname varchar2(10);
begin
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('deptno:' ||v_dname);
end;
end;
--刚写的 你自己对照下
SQL> edi
已写入 file afiedt.buf
1 declare
2 begin
3 <<outer>>
4 declare
5 v_deptno number;
6 v_dname varchar2(10);
7 begin
8 begin
9 select empno into v_deptno from emp
10 where lower(empname)=lower(&name);
11 end;
12 <<inner>>
13 dbms_output.put_line('deptno:' ||v_deptno);
14 end;
15* end;
SQL> /
输入 name 的值: 'wkc168'
原值 10: where lower(empname)=lower(&name);
新值 10: where lower(empname)=lower('wkc168');
deptno:168
PL/SQL 过程已成功完成。
--sql窗口
begin
p1(传参值);
end;
--命令窗口
exec p1