SQL>
SQL> CREATE Or Replace TYPE ProductType AS OBJECT (
2 id NUMBER,
3 name VARCHAR2(15),
4 description VARCHAR2(22),
5 price NUMBER(5, 2),
6 days_valid NUMBER,
7
8 MEMBER FUNCTION getByDate RETURN DATE
9 );
10 /
Type created.
SQL>
SQL> CREATE or replace TYPE BODY ProductType AS
2 MEMBER FUNCTION getByDate RETURN DATE IS
3 v_by_date DATE;
4 BEGIN
5 SELECT SYSDATE
6 INTO v_by_date
7 FROM dual;
8
9 RETURN v_by_date;
10 END;
11 END;
12 /
Type body created.
SQL>
SQL> CREATE TABLE products (
2 product ProductType,
3 count NUMBER
4 );
Table created.
SQL>
SQL> created.
SQL>
SQL> INSERT INTO products (product,count) VALUES (
2 ProductType(1, 'AA', 'BBB', 3.95, 10),50
3 );
1 row created.
SQL>
SQL> INSERT INTO products (product,count) VALUES (
2 ProductType(2, 'CC', 'DDDD', 2.99, 5),25
3 );
1 row created.
SQL>
SQL> SELECT p.product.getByDate()
2 FROM products p;
P.PRODUCT
---------
05-JUN-07
SQL>
SQL> drop table products;
Table dropped.
SQL>