Re: jdbc refuses to pass array argument using ARRAY[...] syntax

Поиск
Список
Период
Сортировка
От Kris Jurka
Тема Re: jdbc refuses to pass array argument using ARRAY[...] syntax
Дата
Msg-id Pine.BSO.4.64.0902071122430.8527@leary.csoft.net
обсуждение исходный текст
Ответ на jdbc refuses to pass array argument using ARRAY[...] syntax  (Hannu Krosing <hannu@2ndQuadrant.com>)
Ответы Re: jdbc refuses to pass array argument using ARRAY[...] syntax  (Hannu Krosing <hannu@2ndQuadrant.com>)
Список pgsql-jdbc

On Sat, 7 Feb 2009, Hannu Krosing wrote:

> org.postgresql.util.PSQLException: org.postgresql.util.PSQLException:
> ERROR: array value must start with "{" or dimension information

This is a server error message, not a JDBC driver message.

> and yes, the full query string returned from myPrepared
> Statement.toString() is valid SQL and does produce desired results when
> I paste it in psql, so the problem is very likely overly paranoid checks
> in PG jdbc driver.
>
> m3=# select * from mytypearrayfunc( 1, ARRAY[
> m3(# ROW(7,'{5,6,7}','{4}')::mytype,
> m3(# ROW(2,'{2}','{3,4}')::mytype,
> m3(# ROW(1,'{1}','{}')::mytype
> m3(# ] )

Since you're using a prepared statement, this isn't the same thing.  The
equivalent is really:

PREPARE myplan ( mytype[] ) AS SELECT * FROM
mytypearraryfunc($1);

EXECUTE myplan ( 'ARRAY[..]'::mytype[] );

ARRAY is a grammar construct and cannot be part of the parameter.

Kris Jurka

В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Hannu Krosing
Дата:
Сообщение: jdbc refuses to pass array argument using ARRAY[...] syntax
Следующее
От: Hannu Krosing
Дата:
Сообщение: Re: jdbc refuses to pass array argument using ARRAY[...] syntax