




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、集合和成员函数,第十章,2,回顾,在上一章中,我们讨论了 数据库触发器 内置程序包,3,目标,本章讨论 PL/SQL表和记录 嵌套表和可变数组 成员函数和过程,4,PL/SQL 表和记录9-1,PL/SQL 表 在PL/SQL块中临时使用、像数组一样的对象 包含一列和一个主键 不能对列和主键进行命名 列可以是任何标量数据类型 主键必须是binary_integer类型 大小没有限制,5,PL/SQL 表和记录9-2,声明 PL/SQL 表 在块、子程序或程序包的声明部分进行声明 所包含的步骤 定义表的类型 TYPE typename IS TABLE OF col_def INDEX BY B
2、INARY_INTEGER; 声明该类型的一个 PL/SQL 表 Tablename typename;其中 typename 是类型名。,6,PL/SQL 表和记录9-3,引用 PL/SQL 表 使用主键值引用 PL/SQL 表中的行 tablename (key_value)其中,tablename 是表名,key_value 是键值。 赋值 要给某行赋值,请使用 tablename (key_value): = expression;其中 tablename 是表名,key_value 是键值, expression 是表达式。,7,PL/SQL 表和记录9-4,管理 PL/SQL 表
3、使用 Insert 语句从表中向数据库中添加数据 使用 Delete 语句从表中删除数据,8,PL/SQL 表和记录9-5,记录 存储在字段中的一组相关数据项 字段有自己的名称和数据类型 可以使用 %ROWTYPE 来声明记录,它表示表的行 优点 用户定义的记录可以有任意数目的不同数据类型的列,9,PL/SQL 表和记录9-6,声明记录 首先,定义记录类型 TYPE typename IS RECORD (列定义.);其中,typename 是类型名。 声明一个该类型的记录作为标识符 recordtype typename;其中 recordtype 是记录类型,而 typename 是类型名
4、。 %type和%rowtype 可以用来指定列的数据类型。 NOT NULL 列必须在声明部分进行初始化。,10,PL/SQL 表和记录9-7,引用记录 引用字段的语法是 recordname.columnname 用于给列赋值的语法是 recordname.columnname: = expression; 其中,recordname 是记录名,而 columnname 是列名,expression 是表达式。,11,PL/SQL 表和记录9-8,批量绑定 绑定 - 对 PL/SQL 变量的赋值 批量绑定 - 一次绑定一整个集合 提高 DML 语句的性能 FORALL 关键字用于要在发送到
5、 SQL 引擎之前对输入集合进行批量绑定,12,PL/SQL 表和记录9-9,BULK COLLECT 子句 通知 SQL 引擎在将输出集合返回到 PL/SQL 引擎之前对它们进行批量绑定 用于下列子句 SELECT INTO FETCH INTO RETURNING INTO,13,嵌套表和可变数组11-1,嵌套表 嵌套在另一个表中的表 可以直接使用 SQL 进行操纵 通过添加额外的集合方法来扩展索引检索表的功能 声明嵌套表 用来声明的语法是 TYPE tablename IS TABLE OF tabletype;其中,tablename 是表名,而 tabletype 是表类型。,14,
6、嵌套表和可变数组11-2,嵌套表 声明时初始化为 NULL 使用构造函数来完成初始化 构造函数跟表类型同名,15,嵌套表和可变数组11-3,创建嵌套表所包含的步骤 使用 CREATE TYPE 语句来创建类型 使用 AS TABLE OF 子句基于此类型创建另一个类型 使用 CREATE TABLE 语句来创建表,关键字为 NESTED TABLE STORE AS,16,嵌套表和可变数组11-4,嵌套表与索引检索表 相似之处 数据类型有相同的结构 用下标来访问单个元素 为索引检索表编写的代码同样适用于嵌套表,17,嵌套表和可变数组11-5,嵌套表与索引表 差异,18,嵌套表和可变数组11-6
7、,可变数组 类似于 C 或者 Pascal 中的数组的数据类型 类似于嵌套表或者索引检索表 可以对其元素数目设置限制,19,嵌套表和可变数组11-7,声明可变数组 用于声明可变数组的语法是 TYPE typename IS VARRAY(maximum_size) OF element_type (not null); typename 是可变数组名 Maximum_size 设置了元素的数目 Element_type 不能为 boolean、ref 游标、表或者另一种可变数组类型,20,嵌套表和可变数组11-8,可变数组 可变数组可以存储在数据库的列中 只可以整个地对可变数组进行操纵 要修改
8、一个可变数组,首先要把其值选到一个变量中,进行修改,然后插入到表中,21,嵌套表和可变数组11-9,集合方法,22,嵌套表和可变数组11-10,集合方法,23,嵌套表和可变数组11-11,可变数组与嵌套表 相似之处 允许使用下标来访问单个元素 可以存储到数据库的表中 差异 可变数组有最大容量,而嵌套表没有 可变数组 - 跟包含它的表存储在一起, 嵌套表 - 存储在单个表中,24,成员函数和过程2-1,构造函数方法 Oracle 的每个对象均有一个内置的构造函数方法 用于创建对象的一个实例 无需显式地定义 与对象类型同名,25,成员函数和过程2-2,对象类型 包含类型规格和类型主体 类型规格 应用程序的接口 声明数据结构和操作来操纵数据 类型主体 定义方法 实现规格,26,总结2-1,PL/SQL 表有一列和一个主键
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 60268-7:2025 CMV EN Sound system equipment - Part 7: Headphones and earphones
- 2024年河北省隆化县人民医院公开招聘护理工作人员试题带答案详解
- 洪洞教编初中数学试卷
- 医院项目管理课件
- 医院课件教学课件
- 《网络综合布线》教案 项目3实训任务 实施工程预算和撰写采购招标文件
- 健康管理中心课件内容
- 中国无线鼠标行业发展监测及投资战略规划研究报告
- 2021-2026年中国风光互补控制器市场竞争格局及投资战略规划报告
- 2025-2030年中国制动鼓行业市场供需态势及发展前景研判报告
- DBJ50T-195-2025 混凝土抗压强度检测技术标准
- 《南昌市海绵城市建设规划设计导则》
- 牙齿漂白治疗技术操作指南
- 道路施工工艺培训
- 2025-2030全球及中国乙酰柠檬酸三丁酯(ATBC)行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 克罗恩病诊断与治疗课件
- 2025济宁市泗水县泗河街道社区工作者考试真题
- 初二化学全套试题及答案
- 核心素养教学落地四大关键策略
- 融资代建合同模板5篇
- 甲方工期回复函
评论
0/150
提交评论