Oracle-10g数据库基础教程第17章基于Oracle数据库的应用开发.ppt

Oracle-10g数据库基础教程第17章基于Oracle数据库的应用开发.ppt

ID:52267830

大小:452.51 KB

页数:39页

时间:2020-04-03

Oracle-10g数据库基础教程第17章基于Oracle数据库的应用开发.ppt_第1页
Oracle-10g数据库基础教程第17章基于Oracle数据库的应用开发.ppt_第2页
Oracle-10g数据库基础教程第17章基于Oracle数据库的应用开发.ppt_第3页
Oracle-10g数据库基础教程第17章基于Oracle数据库的应用开发.ppt_第4页
Oracle-10g数据库基础教程第17章基于Oracle数据库的应用开发.ppt_第5页
资源描述:

《Oracle-10g数据库基础教程第17章基于Oracle数据库的应用开发.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第17基于Oracle数据库的应用开发本章内容利用PL/SQL程序实现分页查询基于Oracle数据库的人事管理系统开发本章要求掌握利用PL/SQL程序实现分页查询掌握利用JDBC连接数据库的方法了解基于数据库的应用系统开发过程了解人事管理系统部分核心代码的实现17.1利用PL/SQL实现分页查询利用集合实现分页查询利用游标变量实现分页查询分页查询在Java开发中的应用17.1.1利用集合实现分页查询如果要对特定结构的结果集进行分页查询,则可以使用集合实现。利用分页查询实现对员工工资名次、员工号、员工名、工资和部门号的查询。

2、CREATEORREPLACEPACKAGEemppkgIS--定义结果集中每条记录的类型TYPEt_recordISRECORD(rnINT,empnoemp.empno%TYPE,enameemp.ename%TYPE,salemp.sal%TYPE,deptnoemp.deptno%TYPE);--定义保存返回结果集的集合类型TYPEemplistISTABLEOFt_record;--定义个实现分页显示的过程PROCEDUREsp_page(p_pageSizeINOUTINT,--每页输出的记录数p_curPag

3、eNoINOUTINT,--当前页码p_outCollectionOUTemplist--查询返回当前页数据的集合);END;CREATEORREPLACEPACKAGEBODYemppkgISPROCEDUREsp_page(p_pageSizeINOUTINT,--每页输出的记录数p_curPageNoINOUTINT,--当前页码p_outCollectionOUTemplist)--查询返回当前页数据的集合ASv_startRownumNUMBER;v_endRownumNUMBER;v_totalRecordsN

4、UMBER;v_totalPagesNUMBER;indexValueBINARY_INTEGER:=1;BEGIN--查询记录总数SELECTcount(*)INTOv_totalRecordsFROMemp;--验证页面记录数量IFp_pageSize<0THENp_pageSize:=10;ENDIF;--计算总页数IFMOD(v_totalRecords,p_pageSize)=0THENv_totalPages:=v_totalRecords/p_pageSize;ELSEv_totalPages:=floor(

5、v_totalRecords/p_pageSize)+1;ENDIF;--验证页号IFp_curPageNo<1THENp_curPageNo:=1;ENDIF;IFp_curPageNo>v_totalPagesTHENp_curPageNo:=v_totalPages;ENDIF;--执行分页查询v_startRownum:=(p_curPageNo-1)*p_pageSize+1;v_endRownum:=p_curPageNo*p_pageSize;p_outCollection:=emplist();FORv_e

6、mpIN(SELECT*FROM(SELECTROWNUMrn,empno,ename,sal,deptnoFROM(SELECTempno,ename,sal,deptnoFROMempWHEREsalISNOTNULLORDERBYsal)AWHEREROWNUM<=v_endRownum)BWHERErn>=v_startRownum)LOOPp_outCollection.extend;p_outCollection(indexValue):=v_emp;indexValue:=indexValue+1;ENDLO

7、OP;ENDsp_page;ENDemppkg;通过对包中分页查询过程的调用,可以根据需要输出特定页的数据。DECLAREv_pageSizeINT:=5;v_curPageNoINT:=2;v_emplistemppkg.emplist;BEGINemppkg.sp_page(v_pageSize,v_curPageNo,v_emplist);DBMS_OUTPUT.PUT_LINE('Thepagesizeis:'

8、

9、v_pageSize);DBMS_OUTPUT.PUT_LINE('ThecurrentpageNO.

10、is:'

11、

12、v_curPageNo);FORiIN1..v_emplist.COUNTLOOPDBMS_OUTPUT.PUT_LINE(v_emplist(i).rn

13、

14、''

15、

16、v_emplist(i).empno

17、

18、''

19、

20、v_emplist(i).ename);ENDLOOP;END;执行结果为Th

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

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

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