I have been given trying to build a VARRAY of REFs and then populate it. I can create the varray, but then when I try to populate it with values, I cannot get the syntax right. I've searched all over the web for any examples, but can't find any. Here is my code:

create or replace type objCar as object(
LicenceNo number,
State varchar2(20),
Make varchar2(20),
Model varchar2(20),
MEMBER FUNCTION getLNo return number
);
/

create or replace type body objCar
as
MEMBER FUNCTION getLNo return number
AS
BEGIN
RETURN LicenceNo;
END;
END;


create type VList as VARRAY(3) of REF objCar;

create table tblManager
(
EID number,
Name varchar2(20),
Dept varchar2(15),
companyCar VList
);

insert into tblManager values(12345, 'Mary Clark', 'Sales', NULL);
Insert into tblManager values(12346, 'Jerry Norris', 'Advertising', NULL);
insert into tblManager values(12347, 'Tom Peters', 'Accounting', NULL);
insert into tblManager values(12348, 'Bob Wilson', 'RND', NULL);

create or replace procedure addCar
(ID IN tblManager.EID%type, vLic number, vState varchar2, vMake varchar2, vModel varchar2)
as
begin
declare
CList Vlist;
NewC objCar;

begin

NewC := objCar(vLic, vState, vMake, vModel);
select CompanyCar into CList from tblManager where EID = ID;
for i in CList.FIRST..CList.LAST loop
if CList(i) IS NULL then
CList(i) := REF(NewC);
exit;
end if;
end loop;
update tblManager set CompanyCar = CList where EID = ID;
End;
End;
/

I've tried populating the varray before I include it into my table,
when inserting values into my table
and in a stored procedure but none of these methods work.

It's the REF syntax that is puzzling me. I know how to work with straight Varrays or REFs, but a Varray of REFs has me stumped.

I always seem to generate this error:

PLS-00306: wrong number or types of arguments in call to 'REF'

or 'Missing right parenthesis'

Any help would be greatly appreciated!!