Tenes razón.... en la versión 8.2 me genera un error en la creación de la tabla, pero en la 8.4 me la acepta.
Debes castear el array al tipo de dato con el que fue generado el campo.
Prueba así
Código SQL:
Ver originalINSERT INTO prestamocab
(codempresa,tipo,codigoreg,codanexo,fecha,moneda,
tcambio,total,porcinicial,cuotainicial,afectaigv,nrocuotas,
usuario,estado,detalle)
VALUES('001', 'P', '04714','000001', '2010-03-01', '1', 1,
50000, 10, 5000, 'S', 6,'ADMIN', 'A',
ARRAY[ROW('10',100,'10','S','10'),ROW('12',200,'12','S', '12')]::td_detalle_prestamo[]);
Lo que se hace es castear un tipo record[] a td_detalle_prestamo[] previamente declarado.
saludos