calling stored procedure with array paramenter (for psql)

Started by Assad Jarrahianabout 20 years ago4 messagesgeneral
Jump to latest
#1Assad Jarrahian
jarraa@gmail.com

I have a pg_psql stored procedure

getlms(_int4)

from psql

SELECT * fROM get_lms(ARRAY[12,23,34]);

that does not work. How do I pass an array to a function in psql?
Please help. Thanks.
-assad

#2Michael Fuhr
mike@fuhr.org
In reply to: Assad Jarrahian (#1)
Re: calling stored procedure with array paramenter (for psql)

On Mon, Jan 09, 2006 at 05:33:53PM -0700, Assad Jarrahian wrote:

I have a pg_psql stored procedure

getlms(_int4)

from psql

SELECT * fROM get_lms(ARRAY[12,23,34]);

that does not work. How do I pass an array to a function in psql?

Could you explain what "does not work" means? Are you getting an
error? If so, what's the error message?

Are those the real function names? They don't match so that could
be the problem (one is getlms, the other is get_lms). If that's
not it then please post a simple but complete example.

--
Michael Fuhr

#3Assad Jarrahian
jarraa@gmail.com
In reply to: Michael Fuhr (#2)
Re: calling stored procedure with array paramenter (for psql)

CREATE OR REPLACE FUNCTION getlms(_int4)
RETURNS SETOF tp_locationmessage_object AS
$BODY$
DECLARE
.......

SELECT * FROM getLMs(<what_goes_here>);

<what_goes_here> ... so lets say I want to send an array contain 1,23,34 ...

how do I do that .. whats the syntax?

Show quoted text

On 1/9/06, Michael Fuhr <mike@fuhr.org> wrote:

On Mon, Jan 09, 2006 at 05:33:53PM -0700, Assad Jarrahian wrote:

I have a pg_psql stored procedure

getlms(_int4)

from psql

SELECT * fROM get_lms(ARRAY[12,23,34]);

that does not work. How do I pass an array to a function in psql?

Could you explain what "does not work" means? Are you getting an
error? If so, what's the error message?

Are those the real function names? They don't match so that could
be the problem (one is getlms, the other is get_lms). If that's
not it then please post a simple but complete example.

--
Michael Fuhr

#4Michael Fuhr
mike@fuhr.org
In reply to: Assad Jarrahian (#3)
Re: calling stored procedure with array paramenter (for psql)

On Mon, Jan 09, 2006 at 08:17:17PM -0700, Assad Jarrahian wrote:

CREATE OR REPLACE FUNCTION getlms(_int4)
RETURNS SETOF tp_locationmessage_object AS
$BODY$
DECLARE
.......

SELECT * FROM getLMs(<what_goes_here>);

<what_goes_here> ... so lets say I want to send an array contain 1,23,34 ...

how do I do that .. whats the syntax?

Either of the following should work:

SELECT * FROM getlms(ARRAY[1,23,34]);
SELECT * FROM getlms('{1,23,34}');

The first looks like what you said you tried already, so if it still
doesn't work then please post a complete example. The problem might
be in the function body, not in how you're calling the function,
so we need to see what the function is doing.

--
Michael Fuhr