Чтобы получить значение oracle.sql.TIMESTAMPLTZ@70156e7b
Я работаю над базой данных Oracle 11g Enterprises Edition. Мы должны получить данные из таблиц базы данных. Таблицы базы данных имеют один из следующих типов столбцов:
- TIMESTAMPLTZ
- TIMESTAMPTZ
Все остальные типы данных и их значения успешно выбраны.
Мы используем apache meta-modal
для анализа таблиц базы данных и создания CSV с его помощью.
Когда мы используем этот метод в строках:
row.getValues()[indexColumn]
НО этот код не извлекает значение столбца для данной строки, он возвращает объект oracle.sql.TIMESTAMPLTZ@70156e7b в виде строки. Нам нужна его ценность.
Приведение его к TIMESTAMPLTZ, исключение приведения. ИЛИ также columnValue.timestampValue() не имеет никакого смысла.
Как я могу получить значение для типа столбца TIMESTAMPLTZ с использованием метамодели Apache в отформатированном виде?
1 ответ
Итак, если вы видите что-то вроде "oracle.sql.TIMESTAMPLTZ@70156e7b", то в вашем выводе ваш код должен явно или неявно вызывать toString()
на oracle.sql.TIMESTAMPLTZ
объект.
Это не даст вам ничего читабельного, не говоря уже о полезном, потому что TIMESTAMPLTZ
класс не переопределяет toString()
, То, что вы видите, это то, что по умолчанию Object.toString()
метод дает вам.
TIMESTAMPLTZ
на самом деле конвертер / адаптер даты, который переносит дату в какой-либо форме. То, как вы используете TIMESTAMPLTZ
экземпляр должен вызвать один из методов экземпляра. Например, позвонив dateValue(Connection)
на TIMESTAMPLTZ
Объект преобразует обернутую внутреннюю дату Oracle в объект Java Date. Другие методы экземпляра преобразуют в класс String, байтовый массив и классы даты / времени JDBC.
(В классе также есть несколько статических методов конвертации, но я не думаю, что это то, что вам нужно здесь.)