Re: Inserting into a uuid column

Поиск
Список
Период
Сортировка
От Thomas Kellerer
Тема Re: Inserting into a uuid column
Дата
Msg-id gok9b9$p4v$1@ger.gmane.org
обсуждение исходный текст
Ответ на Re: Inserting into a uuid column  (Kris Jurka <books@ejurka.com>)
Ответы Re: Inserting into a uuid column  (Oliver Jowett <oliver@opencloud.com>)
Re: Inserting into a uuid column  (Kris Jurka <books@ejurka.com>)
Список pgsql-jdbc
Kris Jurka wrote on 03.03.2009 22:13:
> You should use setObject(<column>, <string value>, Types.OTHER) to
> indicate that while you are passing a String, you aren't expecting the
> server type to be a string datatype.

The problem is that this is a generic import tool, but I'll see what I can do.

>> INSERT INTO my_table (guid_column, ...)
>> VALUES
>> ('a0eebc999c0b4ef8bb6d6bb9bd380a11', ...)
>
> Here you aren't providing any specific type information, just a literal.
> By saying setString or setObject with a String parameter you are saying
> that it really is a String.

No I'm not using setString() in that example. The Java code would be:

Statement stmt = connection.createStatement();
stmt.executeUpdate("INSERT INTO my_table (guid_column) " +
" VALUES ('a0eebc999c0b4ef8bb6d6bb9bd380a11')");

So it's passing a literal and is not using a PreparedStatement

The Javadocs of setObject(int, Object) say:

"The given argument will be converted to the corresponding SQL type before being
sent to the database"

So I was expecting that the driver will be able to do the same conversion with
the PreparedStatement as it is obviously happening when using a literal (though
that conversion probably takes place on the server not in the driver).

Regards
Thomas

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

Предыдущее
От: Kris Jurka
Дата:
Сообщение: Re: Inserting into a uuid column
Следующее
От: Oliver Jowett
Дата:
Сообщение: Re: Inserting into a uuid column