使用AWS Java SDK在AWS Redshift中创建表

时间:2017-12-06 23:11:27

标签: java amazon-web-services amazon-redshift

我正在尝试使用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。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。你可以轻松解决这个问题。而不是

stmt.executeQuery(command);

请尝试

stmt.execute(command);