雪花 jdbc 参数为所有数据类型返回 VARCHAR
Posted
技术标签:
【中文标题】雪花 jdbc 参数为所有数据类型返回 VARCHAR【英文标题】:snowflake jdbc paramter returning VARCHAR for all datatypes 【发布时间】:2019-11-07 11:46:27 【问题描述】:Snowflake JDBC 驱动程序将所有数据类型的参数元数据报告为 VARCHAR。有什么办法可以解决这个问题吗?
DDL:- 创建表INTTABLE(INTCOL整数)
以下是 Snowflake ODBC 驱动程序的输出
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 条文字
【问题讨论】:
Mithun,您需要提供更多有关此问题的信息。你试过什么,你能举出例子吗?我对 Snowflake 使用 JDBC 驱动程序,并且数据类型正确显示。请参考以下内容作为提问的指南:***.com/help/how-to-ask 您的问题很可能出在您的代码中,例如。实际上并没有检查不同的参数。 @Mithun 您能否使用以下内容编辑您的问题:表格描述和示例代码 - 然后您希望它看起来像什么,包括类型。在这种情况下,通常更容易在加载之前使用类型准备数据,但这取决于您的期望。 感谢您的建议。我已经更新了帖子。 【参考方案1】:感谢您在帖子中添加更多信息。不过,我可能还在做一些猜测。
如果您尝试从 Varchar 更改表值类型,但其中没有值,您可以删除该表,然后重新创建它。
如果您想更改表中已有的内容,请先尝试更改表:Manual Reference
还有 CREATE OR REPLACE TABLE(col , col 2 ) 可以兼顾两者。
这就是你要找的吗?
【讨论】:
以上是关于雪花 jdbc 参数为所有数据类型返回 VARCHAR的主要内容,如果未能解决你的问题,请参考以下文章