Re: Why is columnNames in Connection.prepareStatement(sql, columnNames[]) automatically quoted

Поиск
Список
Период
Сортировка
От Dave Cramer
Тема Re: Why is columnNames in Connection.prepareStatement(sql, columnNames[]) automatically quoted
Дата
Msg-id CADK3HHLzBE6PFXWTCyvL8=hh8HUmYk+k-Mn4dz7DBKK46c4F+A@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Why is columnNames in Connection.prepareStatement(sql, columnNames[]) automatically quoted  (Dave Cramer <pg@fastcrypt.com>)
Ответы Re: Why is columnNames in Connection.prepareStatement(sql, columnNames[]) automatically quoted  (Balázs Zsoldos <balazs.zsoldos@everit.biz>)
Список pgsql-jdbc
Actually I think I understand your issue. How would you propose this would work for people who actually have mixed case column names ??

Dave Cramer

dave.cramer(at)credativ(dot)ca
http://www.credativ.ca

On 30 July 2015 at 20:47, Dave Cramer <pg@fastcrypt.com> wrote:
Hi,

Yes there is a chance to change the driver, but I need more info.  What do you mean they are automatically quoted ???

Dave Cramer

dave.cramer(at)credativ(dot)ca
http://www.credativ.ca

On 30 July 2015 at 20:32, Balázs Zsoldos <balazs.zsoldos@everit.biz> wrote:
Hi,

I would like to write database independent SQL statements. Everything works well, until I call Connection.prepareStatement(sql, columnNames[]).

In the SQL statement nothing is quoted and it works well. I am wondering, why the values in the columnNames are automatically quoted? Is it a bug or a feature?

More info:

I create the fields and tables in DDL without quoting them. Table and field names become upper or lower case based on the engine. E.g.: In case of Oracle, they will have upper-case names, in PostgreSQL they will have lower-case names.

If I use Oracle, I must provide the columnNames parameter for the mentioned function with upper-case letters otherwise it does not work (I think that is a bug, too, but I guess it is harder to send a patch for Oracle than PostgreSQL :-) ). If I use any other database engines (Derby, SQLServer, Hsqldb) everything works well.

If I use PostgreSQL, however, I must provide lower-case letters for the parameter as it is quoted inside. I do not think it should be quoted. If someone wants to quote those column names, it would be possible by providing the Strings with quotes like Connection.prepareStatement(sql, "\"myCamelCaseColumnName\"");

Do you think there is any chance to change this in PostgreSQL JDBC driver or shall I write separate code for Postgres?

Regards,
Balázs Zsoldos



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

Предыдущее
От: Dave Cramer
Дата:
Сообщение: Re: Why is columnNames in Connection.prepareStatement(sql, columnNames[]) automatically quoted
Следующее
От: Balázs Zsoldos
Дата:
Сообщение: Re: Why is columnNames in Connection.prepareStatement(sql, columnNames[]) automatically quoted