Q&A

  • Oracle DB에서 RecordCount Property
Oracle 상에서 "Select * from table_name" query시 다른 Table

의 RecordCount는 정상적이나, Table 의 특정 필드가 memo일때(size 2000)

는 -1를 return 합니다.

여러 방법을 시도하였으나, "Select Count(*) from table_name"

밖에는 별다른 해결책이 없어, 질문 합니다.

아시는 분의 도움 부탁합니다.

그럼...



1  COMMENTS
  • Profile
    김영대 1999.09.28 20:50
    BLOB field가 포함된 Query의 RecordCount 를 참조하면 -1 또는

    "그런 동작은 지원하지 않습니다" 라는 에러 메시지를 만나게 됩니다

    이런 현상은 공식적인 버그로 알려져 있습니다



    Query한 레코드가 있는지를 검사할때

    if Query1.RecordCount > 0 then...

    이런 식으로 사용하게 되는데 이런 방법보다는

    if Query1.Eof and Query1.Bof then...

    식으로 사용하시는것이 효율적입니다

    이유는 RecordCount를 참조하게 되면 Query한 레코드를

    모두 PC로 받아온 다음에 로컬에서 갯수를 세기 때문입니다

    그래서 당연히 속도가 떨어집니다



    BLOB 필드가 포함된 레코드의 건수를 셀때는

    말씀하신 것처럼 Count() 오라클 함수를 사용하시는것이

    제일 빠른걸로 알려져 있습니다(레코드의 건수만 받아오므로...)

    또는 Query1.Last한 다음에 Query1.RecordCount 를 참조해보시면

    정확한 값이 넘어온다는 애기도 있는데 저도 이 방법은 사용한적이

    없어서 정확한지는 모르겠습니다