pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
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>

view thread (9+ messages)  latest in thread

Message-ID: <1033140741.4254.12.camel@watto.interprose.net>
Permalink:  ../1033140741.4254.12.camel@watto.interprose.net/
Also on:    postgresql.org/message-id/1033140741.4254.12.camel@watto.interprose.net

 · 

reply

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