1. Persistent and 2. Transient.
Persistent Objects: are those that are stored in the database [Objects created using abstract data types varrays, nested tables etc.]. These can be used both with SQL commands and also in PL/SQL blocks. These reside in the data dictionary. Persistent objects are available to the user until they are deleted explicitly. They can be implemented as tables, columns or attributes.
Transient object exists only within the scope of the PL/SQL block. These get automatically de-allocated once they go out of the scope of the PL/SQL block. Examples of transient objects are PL/SQL variables.
create or replace type Type_adds as object