Object Oriented Database Oracle PLSQL

SQL> CREATE OR REPLACE TYPE aobj AS object (
  2                    state CHAR(2),
  3                    amt NUMBER(5),
  4
  5                    MEMBER FUNCTION mult (times in number) RETURN number,
  6                    PRAGMA RESTRICT_REFERENCES(mult, WNDS));
  7  /
Type created.
SQL>
SQL>
SQL> CREATE OR REPLACE TYPE BODY aobj AS
  2    MEMBER FUNCTION mult (times in number) RETURN number
  3    IS
  4    BEGIN
  5      RETURN times * self.amt; /* SEE BELOW */
  6    END;
  7  END;
  8  /
Type body created.
SQL>
SQL> CREATE TABLE aobjtable (arow aobj);
Table created.
SQL>
SQL>
SQL>
SQL> INSERT INTO aobjtable VALUES (aobj('FL',25));
1 row created.
SQL> INSERT INTO aobjtable VALUES (aobj('AL',35));
1 row created.
SQL> INSERT INTO aobjtable VALUES (aobj('OH',15));
1 row created.
SQL>
SQL> select * from aobjtable;
AROW(STATE, AMT)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
AOBJ('FL', 25)
AOBJ('AL', 35)
AOBJ('OH', 15)
SQL>
SQL> DESC aobjtable;
 Name                                                                                                  Null?    Type
 ----------------------------------------------------------------------------------------------------- -------- --------------------------------------------------------------------
 AROW                                                                                                   AOBJ
SQL>
SQL> drop table aobjtable;
Table dropped.
SQL>
SQL>