你看个例子吧declare BEGIN ----你的语句块 EXCEPTION WHEN NO_DATA_FOUND THEN NULL; -- 捕获错误不执行 END; /
declare cursor mycursor1(v_line number,v_page number) is select ename from (select rownum id,emp.ename ename from emp) where id between (v_line*(v_page-1)+1) and v_line*v_page; v_ename emp.ename%type; begin if not mycursor1%isopen then open mycursor1(&行数,&页数); end if; loop fetch mycursor1 into v_ename; exit when mycursor1%notfound; dbms_output.put_line(v_ename); end loop; close mycursor1; exception when NO_DATA_FOUND then dbms_output.put_line('对不起'); end;这是开始我写的
exit when mycursor1%notfound; ---修改为 if mycursor1%notfound then dbms_output.put_line('对不起'); end if;
declare cursor mycursor1(v_line number,v_page number) is select ename from (select rownum id,emp.ename ename from emp) where id between (v_line*(v_page-1)+1) and v_line*v_page; v_ename emp.ename%type; begin if not mycursor1%isopen then open mycursor1(&行数,&页数); end if; loop fetch mycursor1 into v_ename; if mycursor1%notfound then RAISE_APPLICATION_ERROR(-67676,'failure!'); end if; dbms_output.put_line(v_ename); end loop; close mycursor1; exception when -67676 then dbms_output.put_line('对不起'); end;
那你可以用select count(*)来查询出结果,然后做判断啊
BEGIN
----你的语句块
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL; -- 捕获错误不执行
END;
/
declare
cursor mycursor1(v_line number,v_page number)
is
select ename from (select rownum id,emp.ename ename from emp)
where
id between (v_line*(v_page-1)+1) and v_line*v_page;
v_ename emp.ename%type;
begin
if not mycursor1%isopen then
open mycursor1(&行数,&页数);
end if;
loop
fetch mycursor1 into v_ename;
exit when mycursor1%notfound;
dbms_output.put_line(v_ename);
end loop;
close mycursor1;
exception
when NO_DATA_FOUND then
dbms_output.put_line('对不起');
end;这是开始我写的
exit when mycursor1%notfound; ---修改为
if mycursor1%notfound then
dbms_output.put_line('对不起');
end if;
declare
cursor mycursor1(v_line number,v_page number)
is
select ename from (select rownum id,emp.ename ename from emp)
where
id between (v_line*(v_page-1)+1) and v_line*v_page;
v_ename emp.ename%type;
begin
if not mycursor1%isopen then
open mycursor1(&行数,&页数);
end if;
loop
fetch mycursor1 into v_ename;
if mycursor1%notfound then
RAISE_APPLICATION_ERROR(-67676,'failure!');
end if;
dbms_output.put_line(v_ename);
end loop;
close mycursor1;
exception
when -67676 then
dbms_output.put_line('对不起');
end;
依旧不行,但是我找到一种比较合适的,虽然有些小bug