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

前端之家收集整理的这篇文章主要介绍了Oracle使用对象类型3(MEMBER方法的对象类型)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

.....

原文链接:https://www.f2er.com/oracle/211955.html

猜你在找的Oracle相关文章