我正在尝试使用java SDK在AWS redshift中创建一个临时表。
// Redshift JDBC 4.1 driver: com.amazon.redshift.jdbc41.Driver
String command = "CREATE TABLE test (FirstName varchar(255));"
Class.forName("com.amazon.redshift.jdbc41.Driver");
conn = DriverManager.getConnection(dbURL, props);
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(command);
运行此代码时,表已成功创建,但在返回时会抛出错误
com.amazon.dsi.dataengine.impl.DSISimpleRowCountResult cannot be cast to com.amazon.dsi.dataengine.interfaces.IResultSet
如果我使用返回某些内容的命令(例如
),那么一切都会有效"Select * FROM test;"
"SELECT * FROM test LIMIT 0;"
我没有在AWS READMEs或此问题的其他堆栈溢出问题中看到有关此问题的任何文档。在我看来,驱动程序中有一个特殊的类,当从无法转换为ResultSet类的语句返回任何内容时。
redshift驱动程序版本为1.1.13.1013。
任何帮助将不胜感激!
答案 0 :(得分:1)
我遇到了同样的问题。你可以轻松解决这个问题。而不是
stmt.executeQuery(command);
请尝试
stmt.execute(command);