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 ' || p_table_name
相反,如果我使用此查询
Select * from Customer
,它被编译
但表的名称应该是动态的。
请帮我解决这个问题。
我相信你希望'USING pageNumber,pageSize,pageNumber,pageSize'因为你在SQL语句中有4个绑定变量。 – 2012-07-27 10:02:44
@JustinCave,谢谢 - 更正。 – 2012-07-27 10:16:47
对不起,这是工作 – kamal 2012-07-29 18:37:46