Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/08/2014, 06:41
edwinsp
 
Fecha de Ingreso: septiembre-2008
Mensajes: 75
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: recorrer un array e insertar en la bd

te aconsejo uses como parametro en tu funcion el tipo de dato ARRAY[], dentro de la funcion recorres el array

Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION "public"."pa_GrabarFact" (xnumero VARCHAR, xcliente VARCHAR, xtotal NUMERIC, xdetalle INTEGER []) RETURNS INTEGER AS
  2. $body$
  3. BEGIN
  4. INSERT INTO public."Cabecera"(numero,cliente,total)
  5. VALUES(xnumero,xcliente,xtotal);
  6. FOR i IN array_lower(xdetalle,1) .. array_upper(xdetalle,1) LOOP
  7. INSERT INTO public."Detalle"(numero,item)
  8. VALUES(xnumero, xdetalle[i]);
  9. END LOOP;
  10. RETURN 1;
  11. END;
  12. $body$
  13. LANGUAGE 'plpgsql'
  14. VOLATILE
  15. CALLED ON NULL INPUT
  16. SECURITY INVOKER
  17. COST 100;

y la invoco con:
Código SQL:
Ver original
  1. SELECT "public"."pa_GrabarFact"('0000003','10167201534',5 0,ARRAY[1,2,3]) AS resultado;

Última edición por gnzsoloyo; 04/08/2014 a las 07:10