Q&A

  • 오라클에서 'ORA-01000 ' 이런 에러가 나와요 --;
ORA-01000:maximum open cursors exceeded.

델파이와 오라클8i를 사용하고 있는데요

폼을 좀 많이..스무개 이상 정도, 어쩔땐 그 이하...띄우고 작업하다 보면

아니면 입력/수정 작업을 많이 하다 보면...어쩌다 한번

다음과 같은 에러코드가 나옵니다.



지금 개발한것을 테스트하고 있는데 이런 경우는...에고 --;



Generl SQL error.

ORA-01000:maximum open cursors exceeded.



폼을 열고 닫을때, 아니면 sql 실행후 초기화가 안된건지....쩝 --;



이럴땐 어떻게 해야 하는지 잘 모르겠습니다.

이것을 해결할려면 어떻게 해야 하는지 가르쳐주시면 감사하겠습니다.



그럼 열쉼히...프로그래밍하세요.

3  COMMENTS
  • Profile
    ... 2001.04.24 00:24
    초기화파라미터 파일이 있습니다. 보통은 iniorcl1.ora 인가?

    이름은 정확히 모르겠습니다.

    거기에 OPEN_CURSORS = 300 : 숫자는 알아서 주시고, 오라클 내렸다가 다시 올리면 됩니다.

    저도 이것 때문에 한참 고생한 기억이 있어서요.

    초기설정파일은 찾아보세요.



    훈철 wrote:

    > ORA-01000:maximum open cursors exceeded.

    > 델파이와 오라클8i를 사용하고 있는데요

    > 폼을 좀 많이..스무개 이상 정도, 어쩔땐 그 이하...띄우고 작업하다 보면

    > 아니면 입력/수정 작업을 많이 하다 보면...어쩌다 한번

    > 다음과 같은 에러코드가 나옵니다.

    >

    > 지금 개발한것을 테스트하고 있는데 이런 경우는...에고 --;

    >

    > Generl SQL error.

    > ORA-01000:maximum open cursors exceeded.

    >

    > 폼을 열고 닫을때, 아니면 sql 실행후 초기화가 안된건지....쩝 --;

    >

    > 이럴땐 어떻게 해야 하는지 잘 모르겠습니다.

    > 이것을 해결할려면 어떻게 해야 하는지 가르쳐주시면 감사하겠습니다.

    >

    > 그럼 열쉼히...프로그래밍하세요.

  • Profile
    방기남 2001.04.21 12:12


    아래 답변하신 분도 맞습니다만,



    간단하게 해결하는 방법이 있는데..



    오픈되는 커서의 수를 늘려주는 겁니다..



    파일 이름은 잘 모르겠습니다만, *.ora 파일을 찾아보시면 오라클 셋팅이 되어있는



    파일이 있는데, 그곳에 보시면 Maximum Cursor 어쩌구라고 나와 있을 겁니다.



    좀 높은 값으로 바꿔주시면 되겠져...

  • Profile
    사노라면 2001.04.21 06:35
    훈철 wrote:

    > ORA-01000:maximum open cursors exceeded.

    > 델파이와 오라클8i를 사용하고 있는데요

    > 폼을 좀 많이..스무개 이상 정도, 어쩔땐 그 이하...띄우고 작업하다 보면

    > 아니면 입력/수정 작업을 많이 하다 보면...어쩌다 한번

    > 다음과 같은 에러코드가 나옵니다.

    >

    > 지금 개발한것을 테스트하고 있는데 이런 경우는...에고 --;

    >

    > Generl SQL error.

    > ORA-01000:maximum open cursors exceeded.

    >

    > 폼을 열고 닫을때, 아니면 sql 실행후 초기화가 안된건지....쩝 --;

    >

    > 이럴땐 어떻게 해야 하는지 잘 모르겠습니다.

    > 이것을 해결할려면 어떻게 해야 하는지 가르쳐주시면 감사하겠습니다.

    >

    > 그럼 열쉼히...프로그래밍하세요.



    ==> 오라클 내부에러인데요, 발생하는 원인은 클라이언트 프로그램을 여러개 실행하여

    여러 터미날에서 오라클 서버로 들어가 작업을 하다보면 프로그램당 한번씩 초기화를

    한다고 해도 어차피 오라클에서는 여러프로그램에서 셀렉트 하는 문장을 처리를 해야

    되기때문에 커서라는 것을 잡고 셀렉트 문장을 처리를 해주게 되는데요,

    이것이 열수있는 커서수가 제한되어 있기때문에 다중유저가 접속하여 오라클에서

    셀렉트하는 프로그램으로는 단순한 쿼리문만으로 처리되는 클라이언트 프로그램이라면

    위와 같이 에러메시지가 나오게 됩니다.

    해결방법은 글쎄요.. 데이타베이스 서버에있는 데이타베이스들을 클라이언트 프로그램에서 억세스하는 방법으로는 위와같은 에러문제를 피해갈수 있는 방법이 좀 어렵구요,

    내장프로시져나 트리거를 사용한 프로그램을 데이타베이스 서버에 작성하여 박아두고

    클라이언트에서 요구하는 결과값을 서버에서 셀렉트하여 바로 바로 던져주는 형태로

    가야 될것같습니다.

    내장프로시저에 대한 것은 델파이 데이타베이스 관련 서적을 참고하시면 좋을듯 싶네요..

    그럼 즐코하세요~