ORACLE后台存储过程开发培训课件.ppt

ORACLE后台存储过程开发培训课件.ppt

ID:57058481

大小:586.50 KB

页数:35页

时间:2020-07-30

ORACLE后台存储过程开发培训课件.ppt_第1页
ORACLE后台存储过程开发培训课件.ppt_第2页
ORACLE后台存储过程开发培训课件.ppt_第3页
ORACLE后台存储过程开发培训课件.ppt_第4页
ORACLE后台存储过程开发培训课件.ppt_第5页
资源描述:

《ORACLE后台存储过程开发培训课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ORACLE后台存储过程开发培训2012-11-5讲师:陈明林过程、函数和包介绍事务和异常定义类型、参数和变量定义游标、数组和内存表使用开发技巧与性能优化培训纲要存储过程介绍存储过程是由流控制和SQL语句书写,经编译和优化后存储在数据库服务器中的可执行代码。主要包含申明、执行、和异常三部分,入参和出参都可有可无,但不能设置返回值。示例:createorreplaceprocedurePROC_GET_DATA_CNT(i_nyinvarchar2,o_cntoutnumber)asbeginSELEC

2、Tcount(*)intoo_cntFROMTABLE_NAMEWHERENY=i_ny;end;函数介绍函数也是由流控制和SQL语句书写,经编译和优化后存储在数据库服务器中的可执行代码。主要包含申明、执行、和异常三部分,入参和出参都可有可无,切记必须为函数设置返回值。示例:createorreplacefunctionFUN_GET_DATA_CNT(i_nyinvarchar2)returnnumberisv_cntnumber;beginSELECTcount(*)intov_cntFROMTA

3、BLE_NAMEWHERENY=i_ny;returnv_cnt;end;包介绍存储过程和函数都仅能实现某单一的后台数据处理功能,包是存储过程和函数的集合,由包和包体两部分组成,包和包体中的不同过程和函数不仅可实现不同的数据处理,还为代码的开发、维护和管理带来极大方便,也为越来越多的后台数据库开发者所青睐。包头示例:createorreplacepackagePKG_SP_CKasprocedurePROC_GET_DATA_CNT(i_nyinvarchar2,o_cntoutnumber);fun

4、ctionFUN_GET_DATA_CNT(i_nyinvarchar2)returnnumber;endPKG_SP_CK;注意:包头中可以不定义任何过程和函数,可仅定义常量、全局变量和自定义的数据类型,比如recorde、table等。包介绍包体示例:createorreplacepackagebodyPKG_SP_CKasprocedurePROC_GET_DATA_CNT(i_nyinvarchar2,o_cntoutnumber)asbegin......endPROC_GET_DATA_C

5、NT;functionFUN_GET_DATA_CNT(i_nyinvarchar2)returnnumberisbegin......endFUN_GET_DATA_CNT;endPKG_SP_CK;注意:包头中定义的过程或者函数,在包体中必须实现。但在包体中定义的函数可以作为包体的私有过程和私有函数来使用,这些私有过程和函数不能被其它包体来调用。而包头中定义的函数和过程可以被自身包体和其它包体调用。要求:包体中的过程/函数,在结束时都必须加上过程/函数名,这样能更好的区分多个过程/函数。过程、函数

6、和包介绍事务和异常定义类型、参数和变量定义游标、数组和内存表使用开发技巧与性能优化培训纲要事务定义考虑到数据处理的安全性和事务的唯一性,需要对有数据更新(包括插入和删除)的处理进行提交或者回滚。一般情况下不用显示申明事务,可以把一个甚至多个过程/函数作为一个事务来处理。如果过程/函数间没有相互依存关系,建议对每一个过程/函数进行独立的事务处理,这样能提高过程的处理效率。有一种情况需要定义事务来进行数据处理:当主函数调用子函数时,如果主函数不能提交而子函数需要实时提交,就需要为子函数定义自动提交事务,比

7、如主函数中调用日志输入函数,每一条日志都需要实时提交。这样方能保证在提交子函数中的数据时不提交主函数中的数据。事务定义语句:PRAGMAAUTONOMOUS_TRANSACTION;注意:定义自动提交事务后,过程/函数中必须有提交/回滚处理。异常定义存储过程/函数都是以begin开始、以end结束,都要求在end结束前捕获异常,这样能实时捕获异常进行异常处理,不会导致错误没有处理而程序挂起。示例:createorreplaceprocedurePROC_INS_XXX_DATA(i_nyinvarch

8、ar2)asbeginINSERTINTOTABLE_ASELECT*FROMTABLE_BWHERENY=i_ny;commit;ExceptionwhenothersthenFUN_WRITE_LOG();rollback;end;异常定义在过程/函数中如果处理比较复杂,不同的异常(或者检测到参数或者数据非法)需要进行不同的处理,给调用方返回不同的错误消息,这中情况下就需要定义多个异常。示例:createorreplaceprocedurePROC_

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

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

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