第23章 Oracle中的对象类型.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第23章 Oracle中的对象类型

第23章 Oracle中对象类型 本章目标 掌握对象类型的创建 掌握在集合类型中嵌套对象类型 掌握不同种类的对象类型方法与用法 23.1 对象类型 基本概念 对象类型是面向对象编程的主要组成部分。 对象类型被用于模拟现实世界的具体实体和抽象实体。 对象类型是存储在数据库模式中的。 组成部分 属性(数据) 方法(函数和过程) 可选的 23.1 对象类型 创建语法 CREATE [OR REPLACE] TYPE type_name AS OBJECT (attribute_name1 attribute_type [, …] [method1 specification , …] ) ; CREATE [OR REPLACE] TYPE BODY type_name AS method1 body ; … END ; 对象类型规范 对象类型体 23.1 对象类型 说明 当创建对象类型时,对象类型规范是必需的,对象类型体是可选的。 对象类型规范中所定义的属性和方法都是公开的,外部可见的。 对象类型体中定义的方法是私有的,外部不可见的。 【例23-1】创建对象类型 -- 创建对象类型 create or replace type obj_emp as object (p_ename varchar2(20), p_job varchar2(20), p_sal number(7, 2) ); -- 使用对象类型 declare v_obj_emp obj_emp; begin select obj_emp(ename, job, sal) into v_obj_emp from emp where empno = 7369; dbms_output.put_line(姓名: || v_obj_emp.p_ename); dbms_output.put_line(职务: || v_obj_emp.p_job); dbms_output.put_line(工资: || v_obj_emp.p_sal); end; -- 定义对象实例 -- 初始化对象 初始化对象 定义某个对象实例,在初始化之前,对象实例及其属性都是NULL。 当引用未初始化对象实例的单个属性时,如果该属性是非数值,或者没有限制精度的数值类型,则会导致错误。 例如: declare v_obj_emp obj_emp; begin v_obj_emp.p_ename := Alice; v_obj_emp.p_sal := 1000; end; -- 引用出错 -- 引用正常 对象类型的集合 对象类型和集合类型可以相互嵌套。 【例23-2】创建联合数组,其元素为对象类型 declare type emp_table is table of obj_emp index by binary_integer; v_emp emp_table; begin select obj_emp(ename, job, sal) bulk collect into v_emp from emp; for i in 1..v_emp.count loop dbms_output.put( 姓名: || v_emp(i).p_ename); dbms_output.put( 职务: || v_emp(i).p_job); dbms_output.put_line( 工资: || v_emp(i).p_sal); end loop; end; 【例23-3】创建元素为对象类型的嵌套表类型 -- 创建嵌套表类型 create or replace type type_emp_table is table of obj_emp; declare v_emp type_emp_table := type_emp_table(); v_ename varchar2(20); begin select obj_emp(ename, job, sal) bulk collect into v_emp from emp; select p_ename into v_ename from table(v_emp) where rownum = 1; dbms_output.put_line(姓名: || v_ename); end; -- 使用TABLE函数查询对象的嵌套表 23.2

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档