加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-12 15:46:56 所属栏目:百科 来源:网络整理
导读:MERMER方法用于访问对象实例的数据,如果在对象类型中需要访问特定对象实例的数据,则必须要定义MEMBER方法。 MEMBER方法只能由对象实例调用,不能由对象类型调用。 下面以建立和使用对象类型person_typ2为例: 包含name,gender,birthdate和address等四个属

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),birthdateDATE,address VARCHAR2(100),

MEMBER PROCEDUREchange_address(new_addr VARCHAR2),

MEMBER FUNCTION get_info RETURN VARCHAR2

);

/

然后要建立对象类型体person_typ2

CREATE OR REPLACE TYPE BODY person_typ2IS

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,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_tab2SET person=v_person WHERE eno=&no;

dbms_output.put_line(v_person.get_info);

END;

/

输入no的值:1

.....

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读