Получить возможные типы данных для prepareStatement - Java DB2 - PullRequest
0 голосов
/ 04 июля 2018

Есть ли способ получить типы данных, принятые PreparedStatement перед вставкой значений?

Сценарий: я получаю документы Excel (или OpenOffice), которые я анализирую для импорта данных в базу данных. Иногда, если подразумевается числовой 0, ячейка в Excel остается пустой. Есть ли способ получить тип столбца из подготовленного оператора вставки, чтобы быть уверенным, к какому типу данных я должен проанализировать значение?

Я думаю, что это вполне возможно, предварительно запустив оператор select для таблиц и просто посмотрев на метаданные ResultSet. Но если возможно, я бы хотел обойти это.

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Вы можете получить метаданные параметра из подготовленного оператора, и он содержит среди прочего типы данных параметра.

ParameterMetaData metadata = preparedStatement.getParameterMetaData();
int type = metadata.getParameterType(col);

Java doc getParameterMetaData ()

0 голосов
/ 04 июля 2018

PreparedStatement не поддерживает это. Это позволит вам установить любой тип данных, но когда вы выполните запрос, именно тогда при несоответствии типов данных вы получите SQLException.

. Лучше всего использовать представления SYSTEM CATALOG для определения типа данных столбца и установить / получить значения соответственно.

У DB2 есть это представление SYSCAT.COLUMNS, чтобы получить то, что нужно.

...