前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle使用对象类型3(MEMBER方法的对象类型)

Oracle使用对象类型3(MEMBER方法的对象类型)

作者头像
小小明童鞋
发布2018-06-13 14:49:46
1.6K0
发布2018-06-13 14:49:46
举报
文章被收录于专栏:java系列博客java系列博客

MERMER方法用于访问对象实例的数据,如果在对象类型中需要访问特定对象实例的数据,则必须要定义MEMBER方法。

MEMBER方法只能由对象实例调用,不能由对象类型调用。

下面以建立和使用对象类型person_typ2为例:

包含name,gender,birthdate和address等四个属性,以及一个MEMBER过程change_address和一个MEMBER函数get_info。

CREATE OR REPLACE TYPE person_typ2 AS OBJECT(

name VARCHAR2(10),gender VARCHAR2(2),birthdate DATE,address VARCHAR2(100),

MEMBER PROCEDURE change_address(new_addr VARCHAR2),

MEMBER FUNCTION get_info RETURN VARCHAR2

);

/

然后要建立对象类型体person_typ2

CREATE OR REPLACE TYPE BODY person_typ2 IS

MEMBER PROCEDURE change_address(new_addr VARCHAR2)

IS

BEGIN

address:=new_addr;

END;

MEMBER FUNCTION get_info RETURN VARCHAR2

IS

v_info VARCHAR2(100);

BEGIN

v_info:='姓名'||name||'出生日期'||birthdate;

RETURN v_info;

END;

END;

/

在完成了对象类型person_typ2的创建工作之后,就可以使用该对象类型了。基于person_typ2建立对象表employee_tab2,并插入数据:

CREATE TABLE employee_tab2(

eno NUMBER(6),person person_typ2,sal NUMBER(6,2),job VARCHAR2(10)

);

INSERT INTO employee_tab2(eno,sal,job,person)

VALUES(1,2000,'高级焊工',person_typ2('王明','男','11-1月-75','呼和浩特');

INSERT INTO employee_tab2(eno,sal,job,person)

VALUES(2,1500,'质量检查员',person_typ2('玛丽','女','11-5月-75','呼和浩特'));

在执行了以上语句之后,就会建立对象表employee_tab2,并插入两条数据。因为在定义对象类型person_tab2时定义了对象方法,所以可以在PL/SQL块中使用其对象方法。

下面以调用对象方法change_address改变人员地址:

DECLARE

v_person person_typ2;

BEGIN

SELECT person INTO v_person FROM employee_tab2

WHERE eno=&&no;

v_person.change_address('呼和浩特呵呵呵呵号');

UPDATE employee_tab2 SET person=v_person WHERE eno=&no;

dbms_output.put_line(v_person.get_info);

END;

/

输入no的值:1

.....

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档