PL/SQL编程—分页功能(存储过程)
2017-06-29 22:36
579 查看
SQL> create table t_book(bookid varchar2(3),bookname varchar2(50),publish varchar2(50)); Table created SQL> SQL> create or replace procedure sp_add_book(bookid in varchar2, bookname in varchar2,publish in varchar2) is 2 begin 3 insert into t_book values(bookid,bookname,publish); 4 end; 5 / Procedure created SQL> select * from t_book; BOOKID BOOKNAME PUBLISH ------ -------------------------------------------------- -------------------------------------------------- 1 OracleTestForMine ShenZhenPublish
SQL> create or replace procedure sp_get_mytest(id_in in varchar2,name_out out varchar2,salary_out out number,bonus_out out number,job_out out varchar2) is 2 begin 3 select name,salary,bonus,job into name_out,salary_out,bonus_out,job_out from mytest where id=id_in; 4 end; 5 / Procedure created
SQL> create or replace package sp_pack_mulityqry as 2 type p_cursor is ref cursor; 3 end sp_pack_mulityqry; 4 / Package created
--创建一个游标类 create or replace package sp_pack_pagebycursor as type p_cursor is ref cursor; end sp_pack_pagebycursor; / --利用存储过程来实现分页功能 create or replace procedure fenye( tablename in varchar2, curpage in number, pagerownum in number, orderflg in varchar2, totalrownum out number, totalpagenum out number, res_cursor out sp_pack_pagebycursor.p_cursor ) is --定义sql语句变量 v_sql varchar2(1000); --定义查询起始下标 v_begin_rownum number:=(curpage-1)*pagerownum+1; --定义查询结束下表 v_end_rownum number:=curpage*pagerownum; --执行 begin --定义数据库查询sql v_sql:='select * from (select t.*,rownum rn from (select * from '||tablename||' order by salary '||orderflg||') t where rownum<='||v_end_rownum||') where rn>='||v_begin_rownum; --关联游标和sql open res_cursor for v_sql; --查询总记录数 v_sql:='select count(*) from '||tablename; execute immediate v_sql into totalrownum; --计算总页数 if mod(totalrownum,pagerownum)=0 then totalpagenum:=totalrownum/pagerownum; else totalpagenum:=totalrownum/pagerownum+1; end if; end; /
相关文章推荐
- Oracle实践--PL/SQL综合之分页存储过程
- PL/SQL 编程(二)游标、存储过程、函数
- Oracle实践--PL/SQL综合之分页存储过程
- Oracle(23)pl/sql编程 分页过程
- oracle带输入输出参数存储过程(包括sql分页功能)
- oracle中pl/sql编程---存储过程,函数,触发器,包
- PL/SQL中编写Oracle数据库分页的存储过程
- Oracle带输入输出参数存储过程(包括sql分页功能)
- PL/SQL编程实现Oracle分页 java调用
- oracle(3)pl/sql编程基础 存储过程、函数、包、触发器
- PL/SQL——编程(存储过程、函数、触发器、包)
- PL-SQL 编程(二)游标、存储过程、函数
- oracle PL/SQL编程手册
- Oracle的PL/SQL编程和游标
- 功能完整的分页程序 + 高效SQL查询语句
- 分页通用存储过程(SQL 2005)
- pl/sql编程之循环操作
- SQL查询通用存储过程(可分页)
- Oracle PL/SQL 编程手册
- 功能不错的分页存储过程,可支持多表查询,任意排序