Re: Passing arrays to stored procedures - Mailing list pgsql-general

From William Garrison
Subject Re: Passing arrays to stored procedures
Date
Msg-id 4629A33C.9000904@mobydisk.com
Whole thread Raw
In response to Re: Passing arrays to stored procedures  (Jorge Godoy <jgodoy@gmail.com>)
List pgsql-general
Yeah, I meant bytea[].
It still doesn't work.  Same error:
    ERROR: cannot cast type character varying to bytea[]

Not that this is not the same as doing
    select '{1, 2, 3}'::int[].
This is the equivalent of doing
    SELECT ('{10000, 10000, 10000, 10000}'::varchar(255))::int[];

I can't pass in a string then cast it to something other than a string.

You have made me realize though, that what you are suggesting might work
if I call this as an ad-hoc SELECT statement instead of calling the
stored procedure directly.  Less efficient, but then I should be able to
do what you suggest.  I'll have to try that.  Or maybe that is what you
meant all along.

Jorge Godoy wrote:
> William Garrison <postgres@mobydisk.com> writes:
>
>>     WHERE customerid = ANY($1);
>> Results in the error:
>>     ERROR: op ANY/ALL (array) requires array on right side
>>
>> I tried casting the character string to an array afterward:
>>
>>     WHERE customerid = ANY($1::bytea);
>> which results in:
>>     ERROR: cannot cast type character varying to bytea
>
> You meant array or bytea?
>
>
> neo=# select '{1, 2, 3}'::int[];
>   int4
> ---------
>  {1,2,3}
> (1 record)
>
> neo=#
>
>


pgsql-general by date:

Previous
From: RPK
Date:
Subject: Re: Schema relationship diagram
Next
From: Peter Eisentraut
Date:
Subject: Re: Modify existing index