oracle通用分页存储过程的创建与使用

oracle通用分页存储过程的创建与使用

ID:20365322

大小:49.00 KB

页数:3页

时间:2018-10-10

oracle通用分页存储过程的创建与使用_第1页
oracle通用分页存储过程的创建与使用_第2页
oracle通用分页存储过程的创建与使用_第3页
资源描述:

《oracle通用分页存储过程的创建与使用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、Oracle通用分页存储过程的创建与使用Postedon2011-09-0416:27孤独者阅读(724)评论(0)编辑收藏1.创建Oracle包的定义。使用REFCURSOR数据类型來处理Oracle结果集。REFCURSOR足一个指向PL/SQL查询所返回的结果粜的指针。与普通的游标不冋,REFCURSOR足一个变蛍,它足对游标的引川,可以在执行时将其没置为桁向不同的结果集。使川REFCURSOR输出参数可以将Oracle结构化程序的结果集传递回调川应川程序。通过在调用应用程序屮定义OracleType.Cursor数据类型的输出参数,可以访问REFCURSO

2、R所指向的结果集。createorreplacepackageMF_PAK_001istypet_cursorisrefcursor;procedureGetDataByPage(p_tableNamevarchar2,p_fieldsvarchar2,p_filtervarchar2zp_sortvarchar2,p_curPagenumber,p_pageSizenumber,pcursorouttcursor,p_totalRecordsoutnumber);endMF_PAK_001;2.创建包体。迕包体中实现具体的分贝存储过程。createorrepla

3、cepackagebodyMF_PAK_001isprocedureGetDataByPage(p_tableNamevarchar2,--要齊i句的表名p_fieldsvarchar2,--耍奔询的字段p_filtervarchar2,--过滤条件p_sortvarchar2,排序字段及方向p_curPagenumber,p_pageSizenumber,pcursorouttcursor,p_totalRecordsoutnumber)isv_sqlvarchar2(1000):=11v_startRecordnumber(4);v_endRecordnumb

4、er(4);begin--获取总的记录数v_sql:二,selectto_number(count(*))from1p_tableName;ifp_filterisnotnullthenv_sql:=v_sql'where1=1and'p_filter;endif;executeimmediatev_sqlintop_totalRecords;v_startRecord:=(p_curPage1)*p_pageSize;v_endRecord:^p_curPage*p_pageSize;v_sql:=1select1p_fields

5、1from(select1p_

6、fields1zrownumrfrom1'(select1p_fields1from1p_tableName;ifp_filterisnotnullthenv_sql:=v_sql'where1=1and'p_filter;endif;ifp_sortisnotnullthenv_sql:^v_sql'orderby'p_sort;endif;v_sql:=v_sql')Awhererownum<=1to_char(v_endRecord)1)Bwherer>=1to_char(v_startRecord);openp_cursorforv_sql;endGetD

7、ataByPage;endMF_PAK_001;2.在Oracle中编写查询语川,执行包体中的分页存储过程,看足否能够正确执行。declarev_curMF_PAK_001.t_cursor;v_jobjobs%rowtype;v_totalRecordsnumber;beginMF_PAK_001.GetDataByPage('jobs',1job_idzjob_title,min_salary,max_salary1,'min_salary>01,'job_idasc1,1,10,v_curzv_totalRecords);fetchv_curintov」ob

8、;whilev_cur%foundloopdbms_output.put_line(v_job.job_id•v_job.job_title);fetchv_curintov_job;endloop;dbms_output.put_line(1总记;玫数’v_totalRecords);end;3.在.NET巾调用该分奴存储过程。stringconnstring="DataSource=ORCL;UserId=hr;Password=Pwdl23456";OracleConnectionconn=newOracleConnection(connString);Or

9、ac1eC

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。