Q&A

  • Oracle cursor open error 대처방법 좀...
table 3개를 열어놓고 한 table에 매건 입력할 때마다 2 table을 update 하는데



4건 정도 입력하면 cusor open error이 떨어져요



oracle의 init.ora의 cursor open 수도 455까지 늘려 주었는데 소용이 없어요



좋은 방법없을까요?

1  COMMENTS
  • Profile
    nilriri 2000.06.21 04:24
    최대커서 열기수를 초과했다는 에러메시지를 말씀하시는듯 싶군요...



    만약에 그렇다면 서브루틴에서 동적으로 생성되는 쿼리가 사용후



    메모리상에서 제대로 해제 되고 있는지 검사해 보시기 바랍니다.



    메인프로시져

    BEGIN

    반복처리문

    BEGIN

    서브프로시져호출;

    END;

    END;



    서브프로시져

    BEGIN

    QUERY1 := TQUERY.CREATE; //동적으로 쿼리생성하여 사용...

    :

    :

    :

    QUERY1.FREE; //여기서 메모리 해제를...

    //그렇지 않으면 이 루틴이 호출될때 마다 쿼리가 생성되어서(하나의 커서로 인식...)

    //커서의 최대열기 제한을 넘어선다는 에러가....

    END;



    임시로 사용할 쿼리를 폼이 생성되는곳에서 한번 생성하시고

    프로시져안에서는 CLOSE와 OPEN을 사용하신후

    폼이 닫힐때 메로리 해제를 하는 방법을 사용하셔도 될것같고...



    꼭 동적으로 생성할 필요가 없다면 쿼리컴포넌트를 데이터 모듈이나 폼에

    배치해 놓고 사용하셔도 될것같은데요...



    그럼...



    김범석 wrote:

    > table 3개를 열어놓고 한 table에 매건 입력할 때마다 2 table을 update 하는데

    >

    > 4건 정도 입력하면 cusor open error이 떨어져요

    >

    > oracle의 init.ora의 cursor open 수도 455까지 늘려 주었는데 소용이 없어요

    >

    > 좋은 방법없을까요?