Hola Ovidio, puedes buscar en las funciones de manejo de arreglos https://www.postgresql.org/docs/9.6/static/functions-array.html

según veo para tu escenario puedes utilizar estas:

select array_length(array[1,2,3], 1)

select cardinality(array[1,2,3])


puedes ver el ejemplo aca de lo que retornan: http://rextester.com/XQY65516


haaaa, y asegúrate que sean los arreglos de la misma cantidad de elementos, pues según veo en la lógica que envías en tu función, hay relación entre la longitud del los parámetros que son arreglos.


Saludos




On 29/01/18 17:34, Ovidio Jimenez wrote:
Saludos a todos.


Como puedo saber cuantos elementos tengo en el array para que sea el limite de la sentencia FOR.

/**

     for x in 1..10 loop
  Ejemplo  for x in 1..*N*loop

**/


CREATE OR REPLACE FUNCTION insertar_detalle( *_articulo *integer[], _cantidad numeric[],    _precio numeric[])
RETURNS void AS
$BODY$ declare x integer;
begin

*for x in 1..10loop*

insert into detalle(codiarti, cantidad, precio) values ($1[x],$2[x],$3[x]);
end loop;
end;
$BODY$ LANGUAGE plpgsql;



Gracias!

PostgreSQL 9.4.5, compiled by Visual C++ build 1800, 64-bit
Microsoft Windows [Version 10.0.10240] 64-bit





--
Ing. Ovidio Jiménez
Cel.: 809-390-4299

Reply via email to