Oracle对象解读系列之五自定义类型对集合类型的支持.doc

Oracle对象解读系列之五自定义类型对集合类型的支持.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle对象解读系列之五自定义类型对集合类型的支持

Oracle对象解读系列之 自定义类型对集合类型的支持 文档作者: : : : : 拷贝号 _____ 文档控制 变更记录 1 日期 作者 版本 变更说明 审阅 姓名 职位 分发 拷贝编号 姓名 位置/岗位 备注:本系列讲述了关于Oracle SQL对象的基本信息,解释了什么是对象类型和子程序,描述了如何创建和如何使用一个来自于共享的根和通过继承对象类型层次结构。 本节介绍了ORACLE自定义对象类型对集合数据的支持,包括NESTED TABLE和VARRAY。介绍了如何创建和使用这两种数据类型。本节要求读者会使用CREATE TYPE XXX AS OBJECT创建SQL对象类型。阅读本系里之前建议先阅读 《Oracle对象解读系列之对象的创建和简单使用》 创建SQL对象类型和集合类型参考:Oracle Database PL/SQL Language Reference SQL集合数据类型 Oracle支持数组和嵌套表这两种数据集合类型,其中: 数组是一组有序的元素组成的集合 嵌套表是可以有任意数量的元素 如果你是想暂时保存一组数量固定的元素,或者按照顺序来循环一组元素,或者在进行函数调用的时候需要返回一组处理的元素,那么可以选择使用数组;如果你想更高效的去执行一个集合的查询,或者执行大量数据的DML操作那么可以选择使用嵌套表。 创建集合类型 创建集合类型 下面通过一个例子来说明如何创建一个集合类型 DROP TYPE person_typ FORCE; CREATE OR REPLACE TYPE person_typ AS OBJECT ( idno NUMBER, NAME VARCHAR2(30), phone VARCHAR2(20), MAP MEMBER FUNCTION get_idno RETURN NUMBER, MEMBER PROCEDURE display_details(SELF IN OUT NOCOPY person_typ) ); CREATE OR REPLACE TYPE BODY person_typ AS MAP MEMBER FUNCTION get_idno RETURN NUMBER IS BEGIN RETURN idno; END; MEMBER PROCEDURE display_details(SELF IN OUT NOCOPY person_typ) IS BEGIN dbms_output.put_line(to_char(idno) || - || NAME || - || phone); END; END; CREATE TYPE people_typ AS TABLE OF person_typ; -- nested table type 实例化一个集合类型 可以像实例化一个对象那样的去对一个集合类型进行实例化。 DECLARE people_tb people_typ; BEGIN people_tb := people_typ(person_typ(1, John Smith, 1-650-555-0135)); END; 集合的构造方法 下面的例子是先创建一个包含了嵌套表类型列的表,然后展示了如何使用它的构造方法。 CREATE TABLE people_tab ( group_no NUMBER, people_column people_typ ) -- an instance of nested table NESTED TABLE people_column STORE AS people_column_nt; -- storage table for NT INSERT INTO people_tab VALUES ( 100, people_typ( person_typ(1, John Smith, 1-650-555-0135), person_typ(2, Diane Smith, NULL))); 疑问点:当你查看数据的时候,如果使用SELECT查看people_column列,PLSQL DEVLOPER会强制关闭,通过COMMAND_WINDOW则不会 可以使用下面方法来访问: DECLARE people_tb people_typ; BEGI

您可能关注的文档

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档