Параметр снежинки jdbc, возвращающий VARCHAR для всех типов данных - PullRequest
0 голосов
/ 07 ноября 2019

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

DDL: - CREATE TABLE INTTABLE (INTCOL INTEGER)

Ниже приведен вывод из Snowflake ODBC Driver

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

Ниже приведеноВывод с JDBC-драйвером Snowflake.

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 текст

1 Ответ

0 голосов
/ 13 ноября 2019

Спасибо за добавление дополнительной информации в вашу ветку. Я все еще могу делать небольшие догадки, хотя.

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

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

Существует также СТОЛ СОЗДАНИЯ ИЛИ ЗАМЕНЫ (столбец, столбец 2) который заботится обоим.

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

...