2010-07-30 2 views
1

저장 프로 시저 호출을 통해 페이징을 구현하는 방법을 찾으려고합니다. 예를 들어, 100 개의 행을 가진 'Images'테이블이 있습니다. 웹 사이트가 '첫 번째'에 대한 요청을하고 12 번째 사용자가 다음 페이지로 이동하면 다음 12 번째 사이트에 대한 요청을합니다.pl/sql을 통해 페이징 구현

2 개의 매개 변수를 가져옵니다 (p_Offset 및 p_RecordCount) refcursor를 반환해야합니다. p_Offset은 데이터를 가져 오는 위치를 알려주고 p_RecordCount는 13 번째 행부터 12 행을 반환하도록 p_Offset = 13, p_RecordCount = 12에서 알려줍니다.

우리는 Oracle 10g를 사용하고 있습니다. RECORD 타입을 살펴보기 시작했는데, 필자는이 작업을 더 어렵게 만들고 있다고 느끼고있다. 어떤 도움도받을 만하다.

+0

가능한 중복 http://stackoverflow.com/ques/241622/paging-with-oracle), 또한 : http://stackoverflow.com/questions/488108/paging-with-oracle-and-sql-server-and-generic-paging-method –

답변

1

나는 해결책을 찾은 것 같지만, 그것을 처리하는 다른/더 나은 방법은 여기에 내가 생각 해낸 내용은 다음과 같습니다.

open refcursor for 
select x.* 
from (select col1, col2, row_number() 
    over (order by col desc) rn 
    from [table])x 
where rn >= p_Offset and rownum <= p_RecordCount 
[오라클과 페이징 (의