1.找出下面存储过程错误
declare
begin
vn_loop=0;
open get serv_id;
loop
fetch get serv_id into:vn_serv_id;
exit when get_ser_id% not found;
vn_loop++;
if vn_loop>=1000
dbms_output.put(vn_loop);
end if;
end loop;
end 2.SELECT A.EMP_NAME,B.EDPT.NAME FROM EMP A,DEPT B WHERE A.DEPT_ID(+)=B.DEPT_ID +号的用法
declare
begin
vn_loop=0;
open get serv_id;
loop
fetch get serv_id into:vn_serv_id;
exit when get_ser_id% not found;
vn_loop++;
if vn_loop>=1000
dbms_output.put(vn_loop);
end if;
end loop;
end 2.SELECT A.EMP_NAME,B.EDPT.NAME FROM EMP A,DEPT B WHERE A.DEPT_ID(+)=B.DEPT_ID +号的用法
begin
vn_loop int=0;定义类型
cursor get_serv_id is select * from emp;定义游标
open get_serv_id;
loop
fetch get_serv_id into:vn_serv_id; --:vn_serv_id没有定义
exit when get_ser_id%notfound; notfound 的个关键字不能拆分,并且这句应该放到循环的最后
vn_loop++; oracle没有++这个运算符 改成vn_loop:=vn_loop+1;
if vn_loop>=1000
dbms_output.put(vn_loop);
end if;
end loop;
end
放右边以此类推
vn_loop NUMBER;
vn_serv_id NUMBER;
CURSOR get_serv_id IS
SELECT empno FROM emp;
begin
vn_loop:=0;
open get_serv_id;
loop
fetch get_serv_id INTO vn_serv_id;
exit when get_serv_id%NOTFOUND;
vn_loop := vn_loop+1;
if vn_loop>=1000 THEN
dbms_output.put_line(vn_loop);
end if;
end loop;
END;
2 右连接,返回B表里的所有EDPT_NAME,包括不满足连接条件的。
一不小心就陷阱…………
最后一段加上dbms_output.put_line(vn_loop);
end if;
end loop;
close get_serv_id;
END;
游标还要记得关闭close get_serv_id;