본문 바로가기

DATABASE/Oracle

[Oracle] 오라클 페이징 처리 하기

여러방법이 있겠지만 현재 내가 쓴것.


 query란 변수에 데이터를 가져오는 sql문이 들어가 있을 경우.
(java파일에서 작성한다고 가정할때)

ex>
query = "select * from test";


SELECT * FROM
(
    SELECT ROWNUM AS RNUM, GET.* FROM 
    (             
+ query + (이곳에 데이터를 불러오는 쿼리문이 들어간다.)

    ) GET
   ORDER BY ROWNUM desc
)
WHERE RNUM BETWEEN 1 AND 10 ORDER BY RNUM ASC;


페이징 처리를 하기 위해선 전체 줄 수도 알아야 하기 때문에, 그를 알기위한 쿼리문


SELECT COUNT(*) CNT FROM ( + query + ) 


유의점. ROWNUM 사용시 alias를 필수로 지정하자. ROWNUM그대로 쓰면 페이징 처리가 안되는 경우가 발생하기도 함. 


'DATABASE > Oracle' 카테고리의 다른 글

[Oracle] 오라클 함수  (0) 2011.12.16