You can use the object types wherever built-in types like CHAR or NUMBER can be used. In the block below, you can declare object r of type Rational. Then, you can call the constructor for the object type Rational to initialize the object. The calls assign the values 6 & 8 to attributes num and den, correspondingly.
r := Rational(6, 8);
DBMS_OUTPUT.PUT_LINE(r.num); -- prints 6
You can declare objects as the formal parameters of the functions and procedures. In that way, you can pass objects to the stored subprograms and from one subprogram to the other. In the later illustration, you use the object type Account to specify the datatype of a formal parameter:
PROCEDURE open_acct (new_acct IN OUT Account) IS ...
In the illustration below, you can use object type Account to specify the return type of the function:
FUNCTION get_acct (acct_id IN INTEGER) RETURN Account IS ...