0
다음은 oracle 저장소 프로 시저입니다.oracle의 동적 페이징 문제
여기서 전달하는 테이블 이름은 동적입니다.
PROCEDURE LG_UTIL_GET_TABLE
(
p_table_name VARCHAR,
pageNumber Number,
pageSize Number,
p_cursor OUT types.cursor_type
)
AS
BEGIN
OPEN p_cursor FOR
SELECT * FROM
SELECT a.*, rownum r__
FROM
(
'Select * from ' || p_table_name
) a
WHERE rownum < ((pageNumber * pageSize) + 1)
WHERE r__ >= (((pageNumber-1) * pageSize) + 1) ;
END ;
그러나 저장 프로 시저가 컴파일되지 않습니다. 내가이 쿼리
Select * from Customer
를 사용하는 대신 경우 때문에이 라인의
,Select * from ' || p_table_name
, 그것은
를 컴파일 도착하지만, 테이블 이름은 동적이어야한다.이 문제를 해결하는 데 도움을주십시오.
SQL 문에 4 개의 바인드 변수가 있으므로'USING pageNumber, pageSize, pageNumber, pageSize'를 원한다고 생각합니다. –
@JustinCave, 고마워 - 수정. –
죄송합니다. – kamal