com.microsoft.sqlserver.jdbc.SQLServerException:不支持"variant"数据类型

Pet*_*zov 4 java sql-server sql-server-2008

我想创建显示MSSQL服务器版本的简单Java代码:

public void testMSSQLVersion() throws Exception
    {
        System.out.println("\nTesting SQL query for MSSQL version\n");

        try
        {
            // Load the SQLServerDriver class, build the
            // connection string, and get a connection
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            String connectionUrl = "jdbc:sqlserver://localhost:1433;"
                + "database=master;"
                + "user=admin;"
                + "password=dss!Q;";
            Connection con = DriverManager.getConnection(connectionUrl);
            System.out.println("Connected.");

            // Create and execute an SQL statement that returns some data.
            String SQL = "SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY('productlevel'), SERVERPROPERTY('edition')";
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(SQL);

            // Iterate through the data in the result set and display it.
            while (rs.next())
            {
                System.out.println(rs.getString(1));
            }

        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是,当我运行代码时,我收到此错误:

com.microsoft.sqlserver.jdbc.SQLServerException: The "variant" data type is not supported.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
    at com.microsoft.sqlserver.jdbc.TypeInfo$Builder$16.apply(dtv.java:1996)
    at com.microsoft.sqlserver.jdbc.TypeInfo$Builder.build(dtv.java:2158)
Run Code Online (Sandbox Code Playgroud)

这个问题有什么解决方案吗?

Dev*_*art 5

SELECT ProductVersion = CAST(SERVERPROPERTY('ProductVersion') AS NVARCHAR(128)),
       ProductLevel = CAST(SERVERPROPERTY('ProductLevel') AS NVARCHAR(128)),
       Edition = CAST(SERVERPROPERTY('Edition') AS NVARCHAR(128))
Run Code Online (Sandbox Code Playgroud)