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
|
Список | 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 по дате отправления: