用游标异常的问题 希望有人解决
oracle scott表中的 emp表 我想通过deptno 来 显示出来 emp表中的 ename 和 sal 异常就是输入 deptno 如果表里面没有就抛异常
代码如下 求指点
declare
cursor emp_cursor (dno number) is
select ename,sal from emp where deptno=dno;
v_ename varchar(10);
v_sal number(10);
begin
open emp_cursor(99);
loop
fetch emp_cursor into v_ename,v_sal;
exit when emp_cursor%notfound;
dbms_output.put_line(v_ename||v_sal);
end loop;
close emp_cursor;
exception
when no_data_found then dbms_output.put_line('nodatafound');
end;
完全就没有抛出异常 ,希望能指条路 ,
最好直接把代码写出来
------解决方案--------------------游标没有数据返回不是异常,不会触发EXCEPTION.不过可以通过获取游标记录数来判断
DECLARE
CURSOR EMP_CURSOR(DNO VARCHAR2) IS
SELECT T.FND_ID, T.FND_VERS FROM TGP_FUNDS T WHERE T.FND_ID = DNO;
V_ENAME VARCHAR(10);
V_SAL VARCHAR2(10);
BEGIN
OPEN EMP_CURSOR('MPGF');
LOOP
FETCH EMP_CURSOR
INTO V_ENAME, V_SAL;
EXIT WHEN EMP_CURSOR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(V_ENAME
------解决方案--------------------
V_SAL);
END LOOP;
IF EMP_CURSOR%ROWCOUNT = 0 THEN
DBMS_OUTPUT.PUT_LINE('nodatafound');
END IF;
CLOSE EMP_CURSOR;
END;