Thread: Stored function - send array as parameter to stored function
Hi, I'm new here I've been doing a little self-learning about postgresql and find it very interesting I've been trying to create a stored procedure that receive array as parameter and find a good and working example on the web the code looks like this create or replace function iterate(a int[]) returns void as $$ begin for i in array_lower(a,1)..arry_upper(a,1) loop raise notice '%', a[i]; end loop; end; $$ language plpgsql strict; my problem is, how should I call this function? I tried select iterate(1,2) select iterate([1,2]) select iterate({1,2}) none of them are working how is it really to call this function Thank you Hendra
Yes, this one got me, also. Strangely, you need to do: select iterate('{1,2}'); Also, you have a typo in your function: arry_upper(a,1) b hendra kusuma wrote: > Hi, > I'm new here > I've been doing a little self-learning about postgresql > and find it very interesting > > I've been trying to create a stored procedure that receive array as > parameter and find a good and working example on the web > > the code looks like this > > create or replace function iterate(a int[]) > returns void as $$ > begin > for i in array_lower(a,1)..arry_upper(a,1) loop > raise notice '%', a[i]; > end loop; > end; > $$ language plpgsql strict; > > my problem is, how should I call this function? > I tried > select iterate(1,2) > select iterate([1,2]) > select iterate({1,2}) > none of them are working > > how is it really to call this function > > Thank you > Hendra >
brian <brian@zijn-digital.com> writes: > Yes, this one got me, also. Strangely, you need to do: > select iterate('{1,2}'); In reasonably modern versions of PG you could use an array constructor: select iterate(array[1,2,3]); regards, tom lane