create or replace PROCEDURE QG_GETDATA
(
page in number,--数据页数,从1开始
fields in varchar2,
pageSize in number,--每页大小
tableName nvarchar2,--表名
strWhere nvarchar2,--where条件
Orderby nvarchar2,
v_cur out sys_refcursor
)
is
strSql varchar2(2000);
startIndex number;
endIndex number;
BEGIN
if pageSize<>0 then
startIndex:=(page-1)*pageSize+1;
endIndex:=page*pageSize;
strSql:='SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT '|| fields ||' FROM qg_news t';
if strWhere is not null or strWhere<>'' then
strSql:=strSql||' where '||strWhere;
end if;
if Orderby is not null or Orderby<>'' then
strSql:=strSql||' order by '||Orderby;
end if;
strsql:=strsql||') A WHERE ROWNUM <= '||endIndex||' )WHERE RN >= '||startIndex;
else
strSql:='select '|| fields ||' from '||tableName||' t';
if strWhere is not null or strWhere<>'' then
strSql:=strSql||' where '||strWhere;
end if;
if Orderby is not null or Orderby<>'' then
strSql:=strSql||' order by '||Orderby;
end if;
end if;
-- dbms_output.put_line(strsql);
OPEN v_cur FOR strSql;
END QG_GETDATA;
oracle分页的存储过程
最新推荐文章于 2022-08-24 11:14:15 发布