Re: Exception when inserting boolean values into BIT columns

Поиск
Список
Период
Сортировка
От Oliver Jowett
Тема Re: Exception when inserting boolean values into BIT columns
Дата
Msg-id 42B6B238.5090208@opencloud.com
обсуждение исходный текст
Ответ на Exception when inserting boolean values into BIT columns  (Thomas Dudziak <tomdzk@gmail.com>)
Ответы Re: Exception when inserting boolean values into BIT columns  (Thomas Dudziak <tomdzk@gmail.com>)
Список pgsql-jdbc
Thomas Dudziak wrote:
> I have a problem with BIT datatypes accessed via JDBC. When I try to
> insert a Boolean value via a PreparedStatement, I get the following
> exception (using the newest JDBC driver, postgresql-8.0-311.jdbc3.jar,
> against a 8.0.1 database on Windows, Java is 1.5.0_1):
>
> Exception in thread "main" java.sql.SQLException: ERROR: column "isok"
> is of type bit but expression is of type boolean

As I understand it, JDBC's BIT/BOOLEAN types (single boolean value)
aren't the same as PostgreSQL's BIT type (bit string). The JDBC driver
maps setBoolean(), setObject(...,Types.BIT), and
setObject(...,Types.BOOLEAN) to the 'boolean' datatype.

Try using the boolean type in your schema, assuming what you want to
store is a single boolean value. If you really want a bitstring, you'll
probably need to do something nasty like pass the value via setString()
and use 'pg_catalog.bit(?)' in your query to do the type conversion
(CAST AS doesn't seem to work from brief testing)

-O

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

Предыдущее
От: David Gagnon
Дата:
Сообщение: Re: Problems with temporary tables created in callable functions
Следующее
От: Thomas Dudziak
Дата:
Сообщение: Re: Exception when inserting boolean values into BIT columns