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>
|