123.Oracle数据库SQL开发之 数据库对象——对象创建
欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50087023
ORACLE 8数据库发布的时候,在数据库中就可以使用对象了,随后发布的产品中进一步改进了对象特性。
可以是使用CREATETYPE语句用于创建对象类型。
CREATETYPE t_address AS OBJECT (
streetVARCHAR2(15),
city VARCHAR2(15),
state CHAR(2),
zip VARCHAR2(5)
);
/
每个属性都是用一种数据库类型定义的。
CREATE TYPE t_person AS OBJECT (
id INTEGER,
first_nameVARCHAR2(10),
last_name VARCHAR2(10),
dob DATE,
phone VARCHAR2(12),
address t_address
);
/
再创建对象类型t_product,用于表示产品。
CREATETYPE t_product AS OBJECT (
id INTEGER,
name VARCHAR2(10),
descriptionVARCHAR2(22),
price NUMBER(5, 2),
days_valid INTEGER,
--get_sell_by_date() returns the date by which the
-- productmust be sold
MEMBER FUNCTION get_sell_by_date RETURN DATE
);
/
其中包括了get_sell_by_date()函数,定义如下:
CREATETYPE BODY t_product AS
--get_sell_by_date() returns the date by which the
-- productmust be sold
MEMBER FUNCTION get_sell_by_date RETURN DATEIS
v_sell_by_date DATE;
BEGIN
--calculate the sell by date by adding the days_valid attribute
-- to thecurrent date (SYSDATE)
SELECTdays_valid + SYSDATE
INTOv_sell_by_date
FROM dual;
-- returnthe sell by date
RETURNv_sell_by_date;
END;
END;
/