2013-07-11 5 views
0

그래서 커서가 왜 작동하지 않는지 전혀 알 수 없습니다. select 문이 제대로 작동하므로 SQL 서버에서 오류가 발생하는 이유를 모르겠습니다. For 루프는 암시 적으로 열리고 닫히기 때문에 문제가되지 않아야합니다. 어떤 아이디어? ORA-01001 : 잘못된 CUR ORA-06512 : 줄 1에서PL/SQL 잘못된 커서 오류

ERROR : 라인에서

답변

2

15 아 내가이 문제를 해결

DECLARE 
    var_lname customer.c_last%TYPE; 
    var_fname customer.c_first%TYPE; 
    var_addr customer.c_address%TYPE; 
    var_phone customer.c_dphone%TYPE; 
    CURSOR expl_cursor IS SELECT c_last, c_first, c_address, c_dphone from customer; 
    cust_record expl_cursor%ROWTYPE; 

BEGIN 

    DBMS_OUTPUT.PUT_LINE('ClearWater Traders Mailing List'); 
    FOR cust_record IN expl_cursor 
    LOOP 
     FETCH expl_cursor INTO cust_record; 
     var_lname := cust_record.c_last; 
     var_fname := cust_record.c_first; 
     var_addr := cust_record.c_address; 
     var_phone := cust_record.c_dphone; 
     DBMS_OUTPUT.PUT_LINE(var_lname || ' ' || var_fname || ' ' || 
     var_addr || ' ' || var_phone); 
    END LOOP; 
END; 

다음은 오류입니다. for 루프에서 FETCH를 수행 할 수 없습니다. 커서가 자동으로 증가하므로.

+1

예. 커서 결과 세트를 반복하는 두 가지 방법을 혼합했습니다. 명시 적으로'open' /'fetch' /'close'를하거나 암시적인'for ... in ... loop' 버전을 사용하십시오. [더 많은 문서] (http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/static.htm#BABDHAED). –

+0

+1 - 자신의 문제를 해결했습니다. –

+0

감사합니다 Bob. –