- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
L o g o 存储过程与自定义函数 * 本章目标 存储程序的应用 函数的应用 RETURN 语句 过程和函数的参数模式 查看存储子程序的错误 存储子程序的优点 存储过程 执行特定操作的子程序 存储于数据库中并可由任意匿名块调用 能够接受参数 在参数声明中的数据类型区分符应为无限制的 存储过程(续) 具有两个部分 说明 以关键字 PROCEDURE 开始,以过程名或参数列表结束 主体 以关键字 IS 开始,以关键字 END 结束,后面可以跟可选过程名称 存储过程(续) CREATE [OR REPLACE] PROCEDURE 过程名 [(参数1, … 参数N) ] IS|AS [局部声明] BEGIN 可执行语句; EXCEPTION [例外处理程序]; END [过程名]; 参数代表 变量名 [IN|OUT|IN OUT] 数据类型 [{:= | DEFAULT} 值] 存储过程(续) 示例 CREATE PROCEDURE branch_sum(p_brnch branch.branch_code%TYPE) IS declare variables; BEGIN 可执行语句; EXCEPTION WHEN NO_DATA_FOUND THEN 语句 ; END branch_sum; 存储过程(续) 创建过程时, Oracle 自动执行下列步骤 编译过程 存储所编译的代码 在数据库中存储过程 PL/SQL 编译程序用于编译代码 如果发生错误,也可创建过程,但是无效 存储过程(续) 可以使用 SHOW ERRORS 命令或下列命令查看编译错误 SELECT * FROM USER_ERRORS; Oracle 将编译过程装入 SGA 中 其他用户也可以执行存储在 SGA 中的相同过程 存储过程(续) Oracle 分三个步骤执行过程 验证用户访问 如果为非法用户,则拒绝访问 验证过程有效性 如果为非法过程,则不执行 执行过程 可以通过下列方式检查过程的有效性 SELECT OBJECT_NAME, OBJECT_TYPE, STATUS FROM USER_OBJECTS WHERE OBJECT_TYPE = ‘PROCEDURE’; 存储过程的优点 增强了数据安全性 可以授权用户访问能执行表的存储过程,但不授权他们访问表自身 提高了数据库性能 通过网络发送的信息有所减少 编译不需要执行代码 过程存在于共享池中,所以不需要进行磁盘检索 存储过程的优点(续) 节省内存 只需要在内存中装入过程的一个拷贝便可供多个用户执行 提高了开发的工作效率 通过编写单一的过程可以避免冗余程序代码,并且提高了生产效率 完整性 只需要测试一次,以保证它能够返回正确的结果 调用存储过程 可以作为 PL/SQL 语句调用过程 示例 branch_sum(‘NYK’); 可以从 SQL*Plus 中调用单独的过程 示例 SQL EXECUTE branch_sum(‘NYK’); 函数 返回值的子程序 具有一个 RETURN 子句 存储于数据库中并可由任意匿名程序块调用 通常可以接受参数 在参数声明中的数据类型区分符应为无限制的 函数(续) 具有两个部分 说明 以关键字 FUNCTION 开始,以 RETURN 子句结束 主体 以关键字 IS 开始,以关键字 END 结束,后面可以跟可选函数名称 函数(续) CREATE [OR REPLACE] FUNCTION 函数名 [(参数1, … 参数N) ] RETURN datatype IS|AS [局部声明] BEGIN 可执行语句 ; [EXCEPTION 例外处理程序] END [函数名]; 参数代表的是 变量名 [IN|OUT|IN OUT] 数据类型 [{:= | DEFAULT} 值 函数(续) 示例 CREATE FUNCTION day_fn(mday NUMBER) RETURN CHAR IS disp_day CHAR(15); BEGIN 可执行语句 ; RETURN disp_day; EXCEPTION 语句 ; END day_fn; 调用函数 作为 PL/SQL 语句调用函数 示例 chardays := day_fn(3); 作为表达式的一部分调用函数 示例 IF day_fn(3) = ‘TUESDAY’ THEN 语句 ; END IF; 过程和函数的参数模式 用于定义正式参数的行为 可以与其他子程序一起使用 三个参数模式 IN (默认) OUT IN OUT 避免在函数中使用 OUT 和 IN OUT 模型 过程和函数的参数模式
您可能关注的文档
最近下载
- Unit 5 Play by the rules--单元话题满分范文(教师版)新版 2025年新外研版八年级上册.docx
- ISO9001:质量管理体系标准理解.pptx VIP
- 第四版(2025)国际压力性损伤溃疡预防和治疗临床指南解读PPT课件.pptx VIP
- 水泥生产环保知识培训课件.pptx VIP
- 物理一组卷高一上抛追击.pdf VIP
- 建设工程材料市场信息价查询-北京工程造价信息2025年第1期.doc VIP
- 一种用于吊篮停放的悬挑休息平台.pdf VIP
- CECS456-2016 格网土石笼袋、护坡工程袋应用技术规程(OCR).pdf
- 人教版语文小升初试卷含答案.docx VIP
- 水泥安全生产培训课件.ppt VIP
原创力文档


文档评论(0)