我想创建显示 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/