database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 38939 게시물 읽기
No. 38939
pl/sql 최대 열기 커서 수 에러 도움 급합니다.
작성자
박주영(vf19)
작성일
2011-10-05 14:34
조회수
4,217

  FOR SLIST IN (SELECT NODE_ID FROM TEST네트워크_NODE$) LOOP

    FOR ELIST IN (SELECT NODE_ID FROM TEST네트워크_NODE$) LOOP
    ~~~~~~
   END LOOP;
END LOOP;
   이런 형식의 SQL 문이 있습니다. 
   ~~~~ 안에 내용은 간단하게 설명하면 NODE_ID 가 10개 있다면 
   1부터 10까지 돌면서 1,2 1,3 1,4 이런식으로 1과 전체 비교,  2와 전체 비교 
   하는 SQL 문입니다.
   그런데 노드수가 적으면 상관이 없는데 좀 많아 지게 되면 
   구하는 중간에 최대 열기 커서 수 에러가 납니다. 
    FOR LOOP 안에 사용하는 커서는 따로 CLOSE 를 하지 않아도 닫히는 것으로
   알고 있습니다만 따로 커서를 닫는 처리를 해야하는 것인지 알고 싶습니다. 
   몇일전부터 이 에러를 잡으려고 검색도 해보고 이것저것 해봤는데 
   도전히 못잡겠습니다. 도와주세요 .
이 글에 대한 댓글이 총 3건 있습니다.

for 문장이 중첩으로 SELECT 절이 계속해서 커서를 오픈하고있기에 

해당에러가 발생하는것같네요

커서를 CLOSE 하는부분을 추가해주시면 될거같은데요..

또 굳이 FOR 조건절로 IN 을 사용하시는거보다

FOR절 내부에서 IF 조건등을 이용하는게 더 좋아보이는데요..

1님이 2011-10-05 16:30에 작성한 댓글입니다. Edit

FOR  IN ( ) 괄호안에 커서를 쓰지 말고 따로 선언한 다음에 

선언한 커서를 한번씩 돌떄마다 CLOSE 하라는 것인가요? 

FOR 문은 커서 open, fetch, close 가 자동으로 일어난다고

알고있었는데 아닌가 보네요 ..

친절한 답변감사드리고 그렇게 한번 해봐야겠습니다.

박주영(vf19)님이 2011-10-05 16:48에 작성한 댓글입니다.

중첩 루프 구조로 절차적인 프로그램이네요.

SQL 은 비절차적, 구조적, 집합적 언어입니다.

SQL의 장점을 잘 이용해 보세요.

SQL 조인을 이용하시는게 나을 듯 하네요.

마농(manon94)님이 2011-10-06 10:28에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
38942컬럼을 나누면서 connect by를 하려는데요 [3]
ㅇㅇ
2011-10-06
5320
38941DELETE 관련 간단한 질문요 [4]
궁그미
2011-10-06
4006
38940밑에 커서오류 이어서 문제..미치겠습니다. [3]
박주영
2011-10-05
4753
38939pl/sql 최대 열기 커서 수 에러 도움 급합니다. [3]
박주영
2011-10-05
4217
38937댓글의 총 갯수 [2]
서유미
2011-10-05
5900
38936ORA-29275 오라클 캐릭터 셋 관련..... [1]
곽정호
2011-10-04
6074
38935PL/SQL INSERT 문 질문입니다. [2]
박주영
2011-10-04
4519
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다