java - com.microsoft.sqlserver.jdbc.SQLServerException : The "variant" data type is not supported

标签 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();
        }
    }

但是当我运行代码时出现这个错误:

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)

这个问题有解决办法吗?

最佳答案

SELECT ProductVersion = CAST(SERVERPROPERTY('ProductVersion') AS NVARCHAR(128)),
       ProductLevel = CAST(SERVERPROPERTY('ProductLevel') AS NVARCHAR(128)),
       Edition = CAST(SERVERPROPERTY('Edition') AS NVARCHAR(128))

关于java - com.microsoft.sqlserver.jdbc.SQLServerException : The "variant" data type is not supported,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34675258/

相关文章:

java - 如何离线使用dom4j SAXReader?

c# - LINQ To SQL 不保存到数据库

sql - 使用计划作业 SQL Agent Management Studio 导出到 CSV

sql-server-2008 - 在 SQL Server Management Studio 2008 R2 右侧打开新选项卡

java 1.7 与 jdbc 驱动程序的兼容性

java - 可以设置slack消息的动态图片大小吗?

Java Google App Engine 批量加载器上传错误 “OverflowError: date value out of range”

java.sql.SQLException : No suitable driver found for jdbc:mysql://localhost:3306/db 异常

sql - 我们在哪里使用 BCP 命令提供密码?

java - Spark SQL Java GenericRowWithSchema 无法转换为 java.lang.String