-
ora-01001 Invalid Cursor , 커서가 부적합 합니다개발 2023. 10. 20. 22:22
ora-01001 커서가 부적합 합니다
일단 이 오류가 난 것은 너무 걱정하지 마시고요.
다시 찬찬히 소스를 살펴 보세요.
OPEN, CLOSE 잘 되어 있나 보면 됩니다.
혹시 커서를 열어놓고 안 닫았을 경우 생기는 오류 입니다.
만약 진짜 눈을 씻고 찾아봐도 이런 오류가 안보인다면,
상황이 좀 심각해 집니다.
글을 찾아보니 커서에 넣는 데이터가 메모리 초과 할때 발생 한다고 하는데요.
이럴때는 커서의 내용을 변경해야 합니다.
그래도 대부분의 ora-01001 Invalid Cursor 에러 발생시,
열어 놓고 닫지 않아서 생기는 경우가 많습니다.
혹은 열린 커서에 대해 페치 루프 내에서 COMMIT를 작성한게 있는지 찾아보세요.
아래 오라클의 설명도 첨부 합니다. (큰 도움은 안되시겠지만 .. )
커서가 부적합합니다
원인: 이 오류는 더 이상 유효하지 않은 커서에서 페치가 시도되었음을 나타냅니다.
PL / SQL 커서 루프는 암시적으로 페치를 수행하므로이 오류가 발생할 수도 있습니다.
원인:
1) 마지막 행을 검색 한 후 커서에서 가져 오기 및 ORA-1403 오류가 리턴되었습니다.
2) FOR UPDATE 절로 커서를 연 경우 COMMIT가 발행 된 후 페치하면 오류가 리턴됩니다.
3) SQL 문에서 플레이스 홀더를 리 바인드 한 후 명령문을 다시 실행하기 전에 페치를 발행하십시오.
조치:
1) 마지막 행을 검색 한 후 페치 명령문을 발행하지 마십시오. 페치 할 행이 더 이상 없습니다.
2) 갱신을 위해 열린 커서에 대해 페치 루프 내에서 COMMIT를 발행하지 마십시오.
3) 리 바인드 후 명령문을 다시 실행 한 후 다시 페치하십시오.
'개발' 카테고리의 다른 글
ora-01006 = 바인드 변수가 없습니다, bind variable does not exist (0) 2023.10.29 ora-01004 = "디폴트 사용자명 사용 불가. 로그온이 허락되지 않습니다" (0) 2023.10.20 ora-01003 = "해석된 문이 없습니다" , no statement parsed (0) 2023.10.20 ora-01002 = "인출 시퀀스가 틀립니다" , fetch out of sequence (0) 2023.10.20 ORA-01000: maximum open cursors exceeded (0) 2023.10.20