0

sqlstructure1つのパラメータがMSSQLのタイプであるストアドプロシージャを呼び出そうとしています。合格しまし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 に答える