Re: Passing arrays to stored procedures
| От | William Garrison |
|---|---|
| Тема | Re: Passing arrays to stored procedures |
| Дата | |
| Msg-id | 4629A33C.9000904@mobydisk.com обсуждение исходный текст |
| Ответ на | Re: Passing arrays to stored procedures (Jorge Godoy <jgodoy@gmail.com>) |
| Список | 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 по дате отправления: