Oracle 11g数据库管理与开发基础教程 教学课件 作者 袁鹏飞 第16章.ppt

Oracle 11g数据库管理与开发基础教程 教学课件 作者 袁鹏飞 第16章.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
检索对象引用中的实际对象 例如, BOOKS_PUB@orcl_dbs SELECT author_id, DEREF(address) FROM oref_authors; AUTHOR_ID DEREF(ADDRESS)(ADDR, CITY, STATE, ZIP) ------------ ------------------------------------------------------------------- 810001 ADDRESS_TYPE(北区二里200号101室, 北京, 北京 , 101000 ) 810002 ADDRESS_TYPE(西藏路1200号1501室, 上海, 上海 , 211050 ) 16.3.2 PL/SQL中使用对象 用户可以在PL/SQL程序中声明对象类型的变量,然后在执行部分对这些变量以及对象表、列对象进行操作,其操作的方式与普通变量和关系表的操作方式类似。 例如,创建一个存储过程,显示ob_books表中对象的属性值。 BOOKS_PUB@orcl_dbs CREATE OR REPLACE PROCEDURE get_books ( 2 p_bid IN ob_books.book_num%TYPE) 3 AS 4 v_book book_type; 5 BEGIN 6 SELECT VALUE(ob) INTO v_book 7 FROM ob_books ob 8 WHERE book_num = p_bid; 9 DBMS_OUTPUT.PUT_LINE(图书编号为: || v_book.book_num); 10 DBMS_OUTPUT.PUT_LINE(图书名称为: || v_book.book_name); 11 DBMS_OUTPUT.PUT_LINE(作者为: || v_book.author.author_lname || 12 v_book.author.author_fname); 13 DBMS_OUTPUT.PUT_LINE(价格为: || v_book.price); 14 END get_books; 15 / 过程已创建。 16.4 继承与重载 从Oracle Database 9i开始引入了对象类型继承。对象继承就是指两个或两个以上的对象,其中一个对象是另一个对象的子对象,它拥有其父对象类型的公用属性和方法。此外,子对象类型还可以定义自己的私有属性和方法。 重载是使过程或函数处理不同类型数据或接收不同个数参数的一种方法。 16.4.1 对象继承 对象通过继承可以实现对象类型的层次结构,子类型不仅可以从其直接父类型中继承属性和方法,也可以继承层次结构中所有父类型的全部属性和方法。 实现对象类型的继承,就必须在父类型的定义中使用NOT FINAL子句。默认情况下,用户定义的对象类型是FINAL,即表示该对象类型不能被继承。 例1,修改16.2节中图书对象类型的定义,以该对象类型为父类型,建立其子类型并实现相应的操作。 BOOKS_PUB@orcl_dbs CREATE OR REPLACE TYPE books_type AS OBJECT ( 2 book_num NUMBER(6), 3 book_name VARCHAR2(60), 4 book_category CHAR(10), 5 author author_type, 6 publish VARCHAR2(50), 7 price NUMBER(8,2), 8 content VARCHAR2(2000), 9 MEMBER FUNCTION get_sell_count (p_bid NUMBER) RETURN NUMBER 10 ) NOT FINAL 11 / 类型已创建。 BOOKS_PUB@orcl_dbs CREATE OR REPLACE TYPE BODY books_type AS 2 MEMBER FUNCTION get_sell_count (p_bid NUMBER) RETURN NUMBER 3 IS 4 CURSOR c_qty IS 5 SELECT qty FROM orders WHERE book_id=p_bid; 6 v_count NUMBER(38) := 0; 7

您可能关注的文档

文档评论(0)

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

1亿VIP精品文档

相关文档