te aconsejo uses como parametro en tu funcion el tipo de dato ARRAY[], dentro de la funcion recorres el array
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION "public"."pa_GrabarFact" (xnumero VARCHAR, xcliente VARCHAR, xtotal NUMERIC, xdetalle INTEGER []) RETURNS INTEGER AS
$body$
BEGIN
INSERT INTO public."Cabecera"(numero,cliente,total)
VALUES(xnumero,xcliente,xtotal);
FOR i IN array_lower(xdetalle,1) .. array_upper(xdetalle,1) LOOP
INSERT INTO public."Detalle"(numero,item)
VALUES(xnumero, xdetalle[i]);
END LOOP;
RETURN 1;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100;
y la invoco con:
Código SQL:
Ver originalSELECT "public"."pa_GrabarFact"('0000003','10167201534',5 0,ARRAY[1,2,3]) AS resultado;