传入表或SQL语句的分页查询存储过程
2014-05-26 23:53
507 查看
create or replace procedure 分页查询(pvc_input varchar2, pi_backcode out integer, pvc_message out varchar2, pvc_output out varchar2, cur_entrusts out sys_refcursor) is pvar_i_startnum number; --开始行数 pvar_i_onepagenum number; --每页数据量 pvar_i_endnum number; --结束行数 pvar_i_pageindex number; --第几页 pvar_s_tablename varchar2(100) := ' '; pvar_s_sql varchar2(1024) := ' '; begin pvar_s_tablename := nvl(strfieldbyname(pvc_input, 'tablename', ';', '='), ' '); pvar_s_sql := nvl(strfieldbyname(pvc_input, 'sql', ';', '='), ' '); pvar_i_onepagenum := to_number(strfieldbyname(pvc_input, 'onepagenum', ';', '=')); pvar_i_pageindex := to_number(strfieldbyname(pvc_input, 'pageindex', ';', '=')); pvar_i_startnum := pvar_i_onepagenum * pvar_i_pageindex + 1; pvar_i_endnum := pvar_i_startnum + pvar_i_onepagenum; if cur_entrusts%isopen then close cur_entrusts; end if; pi_backcode := 0; pvc_message := 'OK'; --显示全部 if pvar_s_tablename <> ' 'then open cur_entrusts for 'select * from (select a.*, rownum rn from (select * from ' || pvar_s_tablename || ') a where rownum <= ' || to_char(pvar_i_endnum) || ') where rn >=' || to_char(pvar_i_startnum + 1); elsif pvar_s_sql <> ' ' then open cur_entrusts for 'select * from (select a.*, rownum rn from (' || pvar_s_sql || ') a where rownum <= ' || to_char(pvar_i_endnum) || ') where rn >=' || to_char(pvar_i_startnum + 1); end if; end 分页查询;
相关文章推荐
- 通用的可带查询条件的SQL语句的分页存储过程
- 通用的可带查询条件的SQL语句的分页存储过程(2)
- 分页查询存储过程sql语句
- 在SQL Server中使用SQL语句查询一个存储过程被其它所有的存储过程引用的存储过程名
- SQL存储过程事务和优化方法(包括查询方式语句结合)
- SQL 分页查询 存储过程
- 在SQL Server中使用SQL语句查询一个存储过程被其它所有的存储过程引用的存储过程名
- SQL语句的分页存储过程
- SQL语句查询存储过程 视图 所有表 触发器
- SQL之通用查询分页存储过程
- 存储过程中特殊符号的处理-sql语句当参数的存储过程-复杂查询
- Sql语句与存储过程查询数据的性能测试实现代码
- Sql语句与存储过程查询数据的性能测试实现代码
- SQL存储过程事务和优化方法(包括查询方式语句结合)
- 简单搞一下 Oracle 存储过程动态SQL之获取查询分页!
- SQL存储过程事务和优化方法(包括查询方式语句结合)
- 存储过程中对输出参数拼sql语句查询
- sql存储过程分页(sql语句)
- 在SQL Server中使用SQL语句查询一个存储过程被其它所有的存储过程引用的存储过程名
- 三种SQL分页查询的存储过程