Define Single Level
uSpecify in NORMAL code what you need:
udeclare
u    type rows_t is table of REFERENCE%rowtype;
u    v_rows rows_t;
ubegin
u    select * bulk collect into v_rows
u    from REFERENCE t where ADDRESS_ID in 
u          (select id from table (cast (:1 as id_tt)));
u    for i in v_rows.first..v_rows.last loop
u      select object_Seq.nextval into v_new_id from dual;
u      …
u      v_rows(i).REF_ID:=v_new_id;
u      v_rows(i).ADDRESS_ID:=
u        clone_pkg.v_Pair_t(v_rows(i).ADDRESS_ID);
u    end loop;
u    forall i in v_rows.first..v_rows.last 
u      insert into REFERENCE values v_rows(i);
u    …
uend;