제목 : sql문 질의[오라클에서 fetch사용할 방법?]?
안녕하세요.sql 문 질의를 할려구 합니다.
먼저 저의 글을 읽어주셔서 고맙습니다.
환경 : c/s환경
서버 : nt4.0 + 오라클 8.0.5
개발tool : 델파이 6.0
아래의 sql 문의 fetch은 아이비엠 디비투에서 제공되는 예약어
이어서 문제 없이 실행이 되는 sql 문입니다.
====================================================
SELECT * FROM extable ORDER BY REF DESC, STEP FETCH FIRST 13 ROWS ONLY
==========================================================
이것을 위 환경(오라클)에서 사용할려구 하니까..
돌아가지 않습니다.
sql 문이 제대로 종료가 되지 않는다구 나옵니다.
아마... 벤더사마다 사용하는 함수가 틀려서 그런거 같습니다.
오라클에서 위 sql 문을 이용할려면 어떡해 해야 하는지
조언을 해주셨으면 고맙겠습니다.
오늘 하루도 좋은 일만 있으시길 바랍니다.
그리고 FETCH라는 것은 아마도, 처음의 몇 행만 들고오겠다.. 이런 뜻이 아닐까 싶네요? ORACLE 에서는.. rownum 이라는 가상필드를 사용해서 셀렉트 해야 함다.
SELECT * FROM [테이블명] WHERE ROWNUM < 100
이럼 테이블에서 99개의 레코드가 셀렉트 됨다.
(허걱.. 부등호 표시를 잘못올려서, 글 수정했슴다. --;)
근데, 그런 경우에 ROWNUM 이라는 놈의 순서가 부여되는건 ORDER BY 절을 타기 전이거든요. 그래서 예상한거와 같은 결과가 안나올검다.
아마도 열이 많은 테이블에서 셀렉트를 하는게 아니실까 싶은데..
ORDER BY 대신 인덱스를 걸고, hint를 사용해 보세요.
SELECT /*+ INDEX_DESC(테이블명 인덱스명) */ 필드명 FROM 테이블명
이럼 DESC 로 걸리구, INDEX_ASC(..) 이러면 ASC로 걸릴검다.
그럼..