本帖最后由 skystream 于 2010-02-28 13:11:02 编辑

解决方案 »

  1.   

    no_data_found是用于游标的
    那你可以用select count(*)来查询出结果,然后做判断啊
      

  2.   

    你看个例子吧declare
    BEGIN
       ----你的语句块
       EXCEPTION
         WHEN NO_DATA_FOUND THEN
            NULL; -- 捕获错误不执行
      END;
    /
      

  3.   


    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;这是开始我写的
      

  4.   


    exit when mycursor1%notfound; ---修改为
    if mycursor1%notfound then
    dbms_output.put_line('对不起'); 
    end if;
      

  5.   


    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; 
      

  6.   


    依旧不行,但是我找到一种比较合适的,虽然有些小bug