Oracle对象类型(TYPE)之MEMBER
来源:互联网 发布:本人985大学药学 知乎 编辑:程序博客网 时间:2024/06/05 02:55
Oracle对象类型包括对象类型规范和对象类型体两部分。对象类型可以更好的体现Oracle的数据库中设计的面向对象的概念。
对象类型有很多固有的方法供我们使用,比如:MEMBER、STATIC、MAP、ORDER,当然可以自定义构造方法。今天我就以MEMBER为例,希望起到抛砖引玉的作用。
MEMBER方法用于访问对象实例的数据,如果在对象类型中需要访问特定对象实例的数据,则必须要定义MEMBER方法。注意,MEMBER方法只能由对象实例调用,而不能由对象类型调用。下面我们以示例来说明一下:
首先,建立包含MEMBER方法的TYPE和TYPE BODY,示例如下:
<1> 建立对象类型规范:
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);
<2>对象类型体:
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 VARCAHR2(100); BEGIN v_info := '姓名:'||name||',出生日期:'||birthdate; RETURN v_info; END;END;
其次、创建表,并插入数据,以便之后更直观的展示
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','武汉北路55号'));
3、通过对象类型的方法change_address改变人员地址,并调用get_info函数,示例如下:
DECLARE v_person person_typ2;BEGIN SELECT person INTO v_person FROM employee_tab2 WHERE eno=&&no; v_person.change_address('江西南昌东街12号'); --改变员工地址 UPDATE employee_tab2 SET person=v_person WHERE eno=&no; dbms_output.put_line(v_person.get_info); --获取员工信息END;/
输入no的值:1姓名:王明,出生日期:11-1 月 -75
1 0
- Oracle对象类型(TYPE)之MEMBER
- oracle对象类型的member方法
- oracle 对象类型 object type
- Oracle Object type 对象类型
- 【转】Oracle Object type 对象类型详解
- oracle--type类型初始化
- oracle的type类型
- Oracle开发专题之:%TYPE 和 %ROWTYPE 自定义结构类型
- Oracle 自定义类型 create type / type
- oracle 自定义类型 type / create type
- oracle 自定义类型 type / create type
- oracle 自定义类型 type / create type
- oracle 自定义类型 type / create type
- oracle自定义类型type/create type
- 1.Form对象type类型
- Input对象的type类型
- JavaScript-对象类型object type
- Oracle 记录类型和%TYPE
- 如何将ORM框架封装为通用的BaseDao
- HDU1018-Big Number
- MDK提示the project file has a newer major version number...问题
- .htaccess使用方法总结
- C++ 知识点摘要
- Oracle对象类型(TYPE)之MEMBER
- Java 多线程(六) synchronized关键字详解
- SQL Server AlwaysON从入门到进阶(6)——分析和部署AlwaysOn Availability Group
- Android实现model变动自动化改变view之demo
- JSON介绍
- Android之Dalvik模块和ART模式
- C语言小教程
- ViewPager.PageTransformer详解——打造千变万化的viewPager
- MySQL存储引擎--MyISAM与InnoDB区别