String sql= "create table ddd as select * from( select aa from ccc union all select aa from bb) t ";
final String dbType = JdbcConstants.ODPS;
//格式化输出
String result = SQLUtils.format(sql, dbType);
List<SQLStatement> stmtList = SQLUtils.parseStatements(result, dbType);
System.out.println(stmtList.size());
for (int i = 0; i < stmtList.size(); i++) {
SQLStatement stmt = stmtList.get(i);
System.out.println(stmt.toString());
OdpsSchemaStatVisitor visitor = new OdpsSchemaStatVisitor();
stmt.accept(visitor);
//获取表名称
//获取操作方法名称,依赖于表名称
System.out.println("Manipulation : " + visitor.getTables());
}
报错信息为:
java.lang.UnsupportedOperationException: com.alibaba.druid.sql.ast.statement.SQLUnionQueryTableSource
at com.alibaba.druid.sql.ast.statement.SQLTableSourceImpl.clone(SQLTableSourceImpl.java:71)
at com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock.cloneTo(SQLSelectQueryBlock.java:841)
at com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock.clone(SQLSelectQueryBlock.java:792)
at com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock.clone(SQLSelectQueryBlock.java:34)
样例代码如下:版本是1.1.22
报错信息为: