从UNKNOWN到UNKNOWN的转换不受支持

我得到以下运行存储过程的exception:

com.microsoft.sqlserver.jdbc.SQLServerException:不支持从UNKNOWN到UNKNOWN的转换。

该过程定义如下:

CREATE PROCEDURE spTest ( @p1 varchar(1024) , @p2 varchar(1024) , @p3 char(1) , @p4 varchar(254), @p5 varchar(254), @debug bit ) 

我在Java中的参数定义如下:

Object [] params = {“1,2,3”,“d”,“2”,“”,“”,1};

我认为这是由角色造成的。 有什么想法吗?

我找到了。 发条 – 缪斯让我走上了正轨。 设置参数时,char类型不会转换为Object。 以下将有效:

  try (PreparedStatement st = con.prepareStatement(query)) { int n = 1; for (Object o : params) { if (o instanceof Character) { o = "" + o; } st.setObject(n, o); n++; } st.executeQuery(); }