帮忙看看我这个存储过程有什么问题?
CREATE OR REPLACE PROCEDURE PROC_PageDivider
(PERROWS NUMBER:=4,DISPLAYPAGE NUMBER:=1)
--TABLENAME要分页的表名
--PERROWS每页显示的行数
--DISPLAYPAGE要显示的页码
IS
SQL_SELECT VARCHAR2(200); --查询语句
PAGESIZE NUMBER; --页数
TOTALROWS NUMBER; --总共行数
BEGIN
SELECT COUNT(*) INTO TOTALROWS FROM STUDENT; --要用动态SQL
IF TOTALROWS%PERROWS <> 0 THEN
PAGESIZE:=TOTALROWS/PERROWS+1;
ELSE
PAGESIZE:=TOTALROWS/PERROWS;
END IF;
SELECT * FROM STUDENT WHERE ID <=(DISPLAYPAGE-1)*PERROWS
MINUS
SELECT * FROM STUDENT WHERE ID <=DISPLAYPAGE*PERROWS;
END;
我这样执行怎么会有错:
EXCUTE IMMEDIATE PROC_PageDivider 5,2
------解决方案--------------------oracle存储过程中不允许直接用单纯的select语句的,你需要先定义一个指示游标
------解决方案--------------------不明白什么意思,帮顶了
------解决方案--------------------http://www.xh668.com/bbs/thread-4873-1-1.html