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 ..... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ruby-on-rails – Rails视图显示双花括号中的格式输入,如{{
- 在Swift中将参数附加到button.addTarget操作
- ruby-on-rails – Rails:后台文件上传如何工作?
- c# – 如何使用HtmlAgilityPack检查是否是404错误页面(页面
- 如何从firebug控制台隐藏ajax请求?
- cocos2d-iphone – 启用/禁用CCMenu对象的更好方法
- ruby-on-rails-3 – 在Rails link_to中使用Angular变量
- ruby-on-rails – 设计令牌身份验证保存Facebook信息
- Hybrid App开发实战
- Oracle Dataguard中备库中归档日志不同步