0

我正在尝试调用一个参数是sqlstructureMS SQL 类型的存储过程。我已经通过String[] array但它抛出了这个异常

WARNING: #{reportingCharts.getGraphValuesOnLocationBasis}: org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [{CALL dbo.up_Chart_SelectPersonCountByRankLocation(?,?,?,?,?)}]; SQL state [null]; error code [0]; The conversion from UNKNOWN to UNKNOWN is unsupported.; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: The conversion from UNKNOWN to UNKNOWN is unsupported.
javax.faces.FacesException: #{reportingCharts.getGraphValuesOnLocationBasis}: org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [{CALL dbo.up_Chart_SelectPersonCountByRankLocation(?,?,?,?,?)}]; SQL state [null]; error code [0]; The conversion from UNKNOWN to UNKNOWN is unsupported.; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: The conversion from UNKNOWN to UNKNOWN is unsupported.

所以我认为它不接受array作为结构的参数。
不幸的是,我在任何地方都找不到有关如何在 java 中使用它的示例。
如何将我的这个数组/列表传递给这个存储过程?SqlDbType.Structured或者在java中c#的替代品是 什么?

4

1 回答 1

1

参考Microsoft JDBC Driver Team Blog,TVP支持的JDBC驱动还没有发布。有一种解决方法:将值打包成二进制形式,在服务器上对其进行破解并将其传递给表值函数。对于 JDBC 驱动程序,此参数必须作为二进制传递。
请参阅此链接,您将找到 java 的所有 MSsql 数据类型。

于 2012-10-19T04:43:41.100 回答