Object Oriented Oracle PLSQL Tutorial

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>