数据库资料OraPlsqlTps
wnt 2000(C) copyright 应用于Web的面向对象关系型数据库管理系统:Oracle REF 游标、过程和函数 本章目标 游标类型和变量 子程序简介 子程序的优点 存储程序 函数 RETURN 语句 过程和函数的参数模式 查看存储子程序的错误 存储子程序的优点 游标类型和变量 PL/SQL 程序不能将游标作为参数传递到另一个程序 PL/SQL 程序仅能打开游标并处理程序自身内的相应信息 要解决功能限制,用程序可以声明两个不同的游标类型及相应的游标变量 游标类型和变量(续) 根据游标的不同声明方式,游标可以是 强型 弱型 游标类型和变量(续) 强型游标 游标类型的声明包括为游标类型指定了形态或属性的 RETURN 子句 强型游标类型限制随后使用该类型的游标变量的定义 示例 TYPE emp_cur IS REF CURSOR RETURN emp.empno%TYPE; emp_cursor1 cur_emp; 游标类型和变量(续) 弱型游标 程序可以使用弱型游标类型声明任何形态的游标变量 因为没有返回值,所以游标变量的形态是独立的 这增加了游标变量的灵活性,有利于进一步的更改 示例 TYPE emp_cur IS REF CURSOR; 子程序 子程序退出时,声明部分的对象是本地的并且终止其存在 可以使用支持 PL/SQL 的任何 Oracle 工具进行定义 它们可以在 PL/SQL 程序块、过程、函数和数据包中声明 子程序的优点 具有可扩展性 可以自定义 PL/SQL 语言以满足应用程序的需要 提高可复用性和可维护性 子程序只要有效,就完全可以用于任何数目的应用程序中 简化了维护/优化过程,因为如果定义更改只有子程序受到影响 子程序的优点(续) 具有模块化特性 可以将程序拆分为可管理的、明确定义的逻辑块 支持自顶向下的设计和逐步细化的解决问题的方法 抽象内容帮助 允许与细节在精神上分离 这种截取方式允许程序员在主程序的测试并调试完成后再进行过程/函数的定义 存储过程 执行特定操作的子程序 存储于数据库中并可由任意匿名块调用 能够接受参数 在参数声明中的数据类型区分符应为无限制的 存储过程(续) 具有两个部分 说明 以关键字 PROCEDURE 开始,以过程名或参数列表结束 主体 以关键字 IS 开始,以关键字 END 结束,后面可以跟可选过程名称 存储过程(续) CREATE [OR REPLACE] PROCEDURE 过程名 [(参数1, … 参数N) ] IS [局部声明] 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 语句调用过程
您可能关注的文档
最近下载
- 工程施工机具安全管理制度.pptx
- 2020年《钢结构设计规范》GB50017..pdf VIP
- 2024-2025学年河南省南阳市唐河县九年级(上)期末英语试卷(含答案).pdf VIP
- 浙江省杭州2024-2025学年高一上学期1月期末考试政治试题(含答案).pdf VIP
- 膜分离工程超滤(UF)课件.pptx VIP
- 浙江省杭州学军中学2024-2025学年高一上学期期末考试历史试题(含答案).pdf VIP
- 河南省南阳市唐河县2022-2023学年九年级上学期期末英语试卷.pdf VIP
- 旋挖钻孔灌注桩施工方案.docx VIP
- 阿特拉斯•科普柯 冷冻式干燥机.pdf VIP
- 超滤膜技术介绍.pptx VIP
原创力文档

文档评论(0)