一尘不染

不支持从UNKNOWN到UNKNOWN的转换

sql

我在运行存储过程时遇到以下异常:

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};

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


阅读 729

收藏
2021-03-10

共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();
    }
2021-03-10