下面是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 ' || p_table_name
相反,如果我使用此查询
Select * from Customer
, 它被编译
但表名应该是动态的。
请帮我解决这个问题。