From: Greg Johnson <gregj@interprose.com>
To: Josh Berkus <josh@agliodbs.com>
To: pgsql-sql@postgresql.org
Subject: Re: Passing array to PL/SQL and looping
Date: 27 Sep 2002 08:32:21 -0700
Message-ID: <1033140741.4254.12.camel@watto.interprose.net> (raw)
In-Reply-To: <200209261820.08106.josh@agliodbs.com>
References: <1CAD483B723BD611B0C10090274FF068554860@NXCDMAIL>
<200209261820.08106.josh@agliodbs.com>
Is it possible to construct and return an array with plpgsql
like..
CREATE FUNCTION test_array( ) RETURNS VARCHAR[] AS '
DECLARE
return_array VARCHAR[];
BEGIN
return_array[0] := ''test'';
return_array[1] := ''test 1'';
return_array[2] := ''test 2'';
RETURN (return_array);
END;'
LANGUAGE 'plpgsql';
I get the following error when I try to run it:
ERROR: parse error at or near "[" on line 4.
If this worked I could clean up a LOT of hacky plpgsql code I have had
to write.
On Thu, 2002-09-26 at 18:20, Josh Berkus wrote:
> Peter,
>
> > I'm a newbie to PL/SQL and need help badly. I'm trying to pass my array of
> > id's to the function and then loop through until the array is empty. I know
> > there must be atleast five things I'm doing wrong.
>
> Simplified example:
>
> CREATE FUNCTION test_array (
> INT[] )
> RETURNS INT AS '
> DECLARE id_array ALIAS for $1;
> count_it INT;
> BEGIN
> count_it := 1;
> WHILE id_array[count_it] LOOP
> count_it := count_it + 1;
> END LOOP;
> RETURN (count_it - 1);
> END;'
> LANGUAGE 'plpgsql';
>
> returns the number of elements in the supplied array.
>
> --
> Josh Berkus
> josh@agliodbs.com
> Aglio Database Solutions
> San Francisco
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
> (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>
--
Greg Johnson <gregj@interprose.com>
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-sql@postgresql.org
Cc: gregj@interprose.com, josh@agliodbs.com
Subject: Re: Passing array to PL/SQL and looping
In-Reply-To: <1033140741.4254.12.camel@watto.interprose.net>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox