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

10,864
SELECT ProductVersion = CAST(SERVERPROPERTY('ProductVersion') AS NVARCHAR(128)),
       ProductLevel = CAST(SERVERPROPERTY('ProductLevel') AS NVARCHAR(128)),
       Edition = CAST(SERVERPROPERTY('Edition') AS NVARCHAR(128))
Share:
10,864
Peter Penzov
Author by

Peter Penzov

Updated on June 19, 2022

Comments

  • Peter Penzov
    Peter Penzov almost 2 years

    I want to create simple Java code which displays MSSQL server version:

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

    But when I run the code I get this error:

    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)
    

    Is there any solution for this problem?