EXIT WHEN myrc%NOTFOUND;
dbms_output.put_line(tempcard);写成这样就行了

解决方案 »

  1.   

    多谢 按照你的 还是打印两次~~create or replace procedure Test IS
    --temp VARCHAR2(20);
    TYPE rc IS REF CURSOR;
    myrc rc;
    tempcard INTEGER;
    BEGIN
    OPEN myrc FOR SELECT cardid FROM test_tab;
    LOOP
    EXIT WHEN myrc%NOTFOUND;
    FETCH myrc INTO tempcard;
    dbms_output.put_line(tempcard);
    END LOOP;
    CLOSE myrc;
    end Test;
    结果如下
    12
    13
    14
    15
    15
      

  2.   

    呵呵,是叫你写成这样
    LOOP
    FETCH myrc INTO tempcard;
    EXIT WHEN myrc%NOTFOUND;
    dbms_output.put_line(tempcard);
    END LOOP;
      

  3.   

    create or replace procedure Test IS
    --temp VARCHAR2(20);
    TYPE rc IS REF CURSOR;
    myrc rc;
    tempcard INTEGER;
    BEGIN
    OPEN myrc FOR SELECT cardid FROM test_tab;
    LOOP
    FETCH myrc INTO tempcard;
    EXIT WHEN myrc%NOTFOUND;
    dbms_output.put_line(tempcard);
    END LOOP;
    CLOSE myrc;
    end Test;