Collectors make use of object types. You should be familiar with the creation and implementation of object types (see Chapter 38) before attempting to use varying arrays and nested tables.
A varying array allows you to store repeating attributes of a record in a single row. For example, suppose you want to track which of your tools were borrowed by which of your neighbors. You could model this in a relational database by creating a BORROWER table:
create table BORROWER(Name VARCHAR2(25), Tool VARCHAR2(25),constraint BORROWER_PK primary key (Name, Tool));
Even though the borrower's Name value does not change, it is repeated in each record because it is part ...