On Thu, 01 Feb 2001 09:47, Jie Liang wrote:
> e.g.
>
> create function foo(_int4) returns int2 as'
> declare
> a _int4 alias for $1;
> i int:=1;
> begin
> while a[i] loop
> i:=i+1;
> end loop;
> return i-1;
> end;
> ' language 'plpgsql';
>
> you can call it by:
>
> select foo('{1232131,12312321,3424234}');
>
> you should get 3.
In order to get it to work I had to alter it very slightly vis:-
chris=# create function array_element_count(_int4) returns integer as '
chris'# declare
chris'# a alias for $1;
chris'# i integer;
chris'# begin
chris'# i := 1;
chris'# while a[i] loop
chris'# i := i+1;
chris'# end loop;
chris'# return i-1;
chris'# end;' language 'plpgsql' with(isstrict,iscachable);
CREATE
chris=# select
array_element_count('{59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,8
7}');array_element_count
--------------------- 29
(1 row)
--
Sincerely etc.,
NAME Christopher SawtellCELL PHONE 021 257 4451ICQ UIN 45863470EMAIL csawtell @ xtra . co . nzCNOTES
ftp://ftp.funet.fi/pub/languages/C/tutorials/sawtell_C.tar.gz
-->> Please refrain from using HTML or WORD attachments in e-mails to me
<<--