Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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?

like image 958
Peter Penzov Avatar asked Jan 08 '16 10:01

Peter Penzov


1 Answers

SELECT ProductVersion = CAST(SERVERPROPERTY('ProductVersion') AS NVARCHAR(128)),
       ProductLevel = CAST(SERVERPROPERTY('ProductLevel') AS NVARCHAR(128)),
       Edition = CAST(SERVERPROPERTY('Edition') AS NVARCHAR(128))
like image 112
Devart Avatar answered Oct 14 '22 19:10

Devart