According to the oracle online documentation, the varray type is the type among other collection types in PL/SQL used for creating array like objects(I mean array as we understand it in other classic programming languages such as C, Java, etc.). Except that the length can varry from 0 to a maximum size specified during its definition.
Here is an example:
DECLARE
SUBTYPE country_ty IS VARCHAR2(50);
TYPE countries_varr_ty IS VARRAY(10) OF country_ty;
l_varr_countries countries_varr_ty :=
countries_varr_ty
(
'Iran', 'France', 'United Kingdom', 'United States', 'Germany',
'Spain', 'Canada', 'Australia', 'South Africa', 'Afganistan'
);
l_country country_ty;
BEGIN
FOR counter IN l_varr_countries.FIRST .. l_varr_countries.LAST
LOOP
l_country := l_varr_countries(counter);
DBMS_OUTPUT.PUT_LINE('The current value in the array is: '
|| l_country);
END LOOP;
END;
/
For more information on varrays you can refer to the following link:
http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/composites.htm#CHDEIJHD
Regards,
Dariyoosh