Re: Why are clobs always "0"

Поиск
Список
Период
Сортировка
От Thomas Kellerer
Тема Re: Why are clobs always "0"
Дата
Msg-id 4e8fc973-e6cb-5610-1e50-46bbb11e8813@gmx.net
обсуждение исходный текст
Ответ на Why are clobs always "0"  (Arnie Morein <arnie.morein@mac.com>)
Список pgsql-general
Arnie Morein schrieb am 01.12.2019 um 18:31:
> I have tested the most recent driver in three different SQL IDEs, and
> now with an application I'm writing that uses JDBC metadata, the
> comment on a field definition also isn't available as a string
> value.
>
> The only thing I ever see regarding data type "text" field values are
> either a 0 or a 1; neither of which applies.
>
> So why is this happening, even from the JDBC metadata results as
> well?

The Postgres JDBC driver does not have any problems with the "text"
data type, neither with reporting it properly through DatabaseMetaData
(it's reported as Types.VARCHAR) nor with retrieving values from
such a column.

The column size for such a column is reported as 2147483647

Column comments are reliably returned in the column "REMARKS" in the
result of DatabaseMetaData.getColumns()

Given the following table:

     create table test (data text);
     comment on column test.data is 'The text column';

then the following Java code:

     ResultSet rs = connection.getDatabaseMetaData().getColumn(null, "public", "test", "%");
     rs.next();
     System.out.println("column_name: " + rs.getString("COLUMN_NAME"));
     System.out.println("column_size: " + rs.getInt("COLUMN_SIZE"));
     System.out.println("data_type: " + rs.getInt("DATA_TYPE"));
     System.out.println("remarks: " + rs.getString("REMARKS"));

will output:

   column_name: data
   column_size: 2147483647
   data_type: 12
   remarks: The text column

With 12 being the value of java.sql.Types.VARCHAR

Thomas




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

Предыдущее
От: Andreas Joseph Krogh
Дата:
Сообщение: Sv: Why are clobs always "0"
Следующее
От: David Wheeler
Дата:
Сообщение: Connection terminated but client didn't realise