параметр снежинки jdbc, возвращающий VARCHAR для всех типов данных

Драйвер Snowflake JDBC сообщает метаданные параметров для всех типов данных как VARCHAR. Есть ли способ побороть эту проблему?

DDL: - СОЗДАТЬ ТАБЛИЦУ INTTABLE (INTCOL INTEGER)

Ниже приведен результат работы драйвера ODBC Snowflake.

SQLPrepare:
In:StatementHandle = 0x00000000021B1B50, StatementText = "INSERT INTO INTTABLE(INTCOL) VALUES(?)", TextLength = 42
Return: SQL_SUCCESS=0

SQLDescribeParam:
In:StatementHandle = 0x00000000021B1B50, ParameterNumber = 1, DataTypePtr = 0x00000000001294D0, ParameterSizePtr = 0x0000000000126950,DecimalDigits =0x0000000000126980, NullablePtr = 0x00000000001269B0
Return: SQL_SUCCESS=0
Out:*DataTypePtr = SQL_VARCHAR=12, *ParameterSizePtr = 16777216, *DecimalDigits = 0, *NullablePtr = SQL_NULLABLE=1

Ниже приведен результат с драйвером Snowflake JDBC.

PreparedStatement ps = c.prepareStatement("INSERT INTO INTTABLE(INTCOL) VALUES(?)");

ParameterMetaData psmd = ps.getParameterMetaData();

for(int i=1 ;i<=psmd.getParameterCount(); i++) {
    System.out.println(psmd.getParameterType(i)+ "  " + psmd.getParameterTypeName(i));
}

Вывод: - 12 текстов


person Mithun Kumar    schedule 07.11.2019    source источник
comment
Митхун, вам нужно предоставить гораздо больше информации по этому вопросу. Что пробовали и можете ли показать примеры? Я использую драйвер JDBC для Snowflake, и типы данных отображаются правильно. Просьба обращаться к следующему как к руководству по заданию вопросов: stackoverflow.com/help/how-to-ask   -  person Simon D    schedule 07.11.2019
comment
Скорее всего, ваши проблемы в вашем коде, например. фактически не проверяя разные параметры.   -  person Hans Henrik Eriksen    schedule 07.11.2019
comment
@Mithun, не могли бы вы отредактировать свой вопрос следующим образом: описание таблицы и образец кода - а затем то, как вы хотите, чтобы он выглядел, включая типы. В этой ситуации обычно проще подготовить данные с типами перед загрузкой, но это будет зависеть от того, чего вы ожидаете.   -  person Rachel McGuigan    schedule 08.11.2019
comment
Спасибо за предложение. Я обновил сообщение.   -  person Mithun Kumar    schedule 08.11.2019


Ответы (1)


Спасибо за добавление дополнительной информации в свою ветку. Хотя я все еще могу догадываться.

Если вы пытаетесь изменить тип значений таблицы с Varchar, а в нем нет значений, вы можете отбросить таблицу, а затем воссоздать ее заново.

Если вы хотите ИЗМЕНИТЬ то, что уже есть в таблице, попробуйте сначала изменить таблицу: Справочник по руководству

Также существует команда CREATE OR REPLACE TABLE (col, col 2), которая заботится обо всем.

Это то, что вы ищите?

person Rachel McGuigan    schedule 13.11.2019