1

我正在使用 eclipse SQLQueryParserManager 从 sql 查询中提取表名和列名。如果我使用正常查询,我会得到正确的详细信息。但是当我在查询中使用子查询时,我无法获取子查询的详细信息。

这是我所做的:

SQLQueryParserManager parserManager = SQLQueryParserManagerProvider.getInstance()
.getParserManager("oracle", "10g");
SQLQueryParseResult parseResult = parserManager.parseQuery("select distinct xyz 
from t_abc where type = 7 and transmiss_id in (select wxy from t_abc where 
transmi_name like 'us_'");
QueryStatement resultObject = parseResult.getQueryStatement();
String parsedSQL = resultObject.getSQL();
List tableList = StatementHelper.getTablesForStatement(resultObject);
for (Object obj : tableList) {
TableInDatabase t = (TableInDatabase) obj;
System.out.println(" Tables : " + t.getName());
for (Object column : t.getValueExprColumns()) {
System.out.println("  Columns :  " + ((ValueExpressionColumn)column).getName());
}
}

谁能建议我必须使用什么才能获得子查询结果?

4

0 回答 0