diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleSchemaStatVisitor.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleSchemaStatVisitor.java index 7a6f2049c0..a6ba5053cd 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleSchemaStatVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleSchemaStatVisitor.java @@ -265,20 +265,7 @@ public class OracleSchemaStatVisitor extends SchemaStatVisitor implements Oracle } public boolean visit(OracleSelect x) { - setCurrentTable(x); - - if (x.getOrderBy() != null) { - x.getOrderBy().setParent(x); - } - - accept(x.getWithSubQuery()); - accept(x.getQuery()); - - setCurrentTable(x, (String) x.getQuery().getAttribute("table")); - - accept(x.getOrderBy()); - - return false; + return visit((SQLSelect) x); } public void endVisit(SQLSelect x) { diff --git a/src/main/java/com/alibaba/druid/sql/visitor/SchemaStatVisitor.java b/src/main/java/com/alibaba/druid/sql/visitor/SchemaStatVisitor.java index 7153bf58cc..6f24538a2c 100644 --- a/src/main/java/com/alibaba/druid/sql/visitor/SchemaStatVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/visitor/SchemaStatVisitor.java @@ -964,6 +964,7 @@ public class SchemaStatVisitor extends SQLASTVisitorAdapter { x.getOrderBy().setParent(x); } + accept(x.getWithSubQuery()); accept(x.getQuery()); String originalTable = getCurrentTable();