2013-12-14 1 views
2

중복 레코드를 가져 오는 이유는 무엇입니까? pls 날 정정. 진보에 감사드립니다.최종 레코드가 중복 된 오라클 커서

declare 
    clazzes_rec clazzes%rowtype; 
    cursor clazzes_cur is select * from clazzes; 
begin 
    if clazzes_cur%isopen then 
    dbms_output.put_line('Cursor is not open,trying to Open.... ... .. .'); 
    end if; 

    open clazzes_cur; 

    dbms_output.put_line('Cursor opened :'); 

    loop 
    fetch clazzes_cur into clazzes_rec; 
     dbms_output.put_line('id:'||clazzes_rec.id||':name:'||clazzes_rec.name); 
    exit when clazzes_cur%notfound; 
    end loop; 

    close clazzes_cur; 

end; 

OUPUT는 :

Cursor opened : 
id:1:name:leo1 
id:2:name:leo2 
id:3:name:leo3 
id:4:name:leo4 
id:4:name:leo4 

PL/SQL procedure successfully completed 

답변

5

그냥 라인을 교체 : 마지막 기록을 인출하고 다음 clazzes_cur%notfound를 가져 오기 위해 노력하는 것은 전에 true가 될 만 한

loop 
fetch clazzes_cur into clazzes_rec; 
exit when clazzes_cur%notfound; 
    dbms_output.put_line('id:'||clazzes_rec.id||':name:'||clazzes_rec.name); 
end loop; 

마지막 레코드를 다시 출력하는 루프에서 빠져 나올 수 있습니다.

+0

고맙습니다. – sunleo

관련 문제