【发布时间】:2017-05-19 12:47:26
【问题描述】:
我正在将一个 CSV 文件读入我的 java 程序,它的每条记录中都有一个 sql 查询。我想解析这个 (Select)SQL 查询以查找这些查询中提到的表名和列名。
例如从员工中选择年龄、姓名
结果:
---- 表格:[员工]
---- 列:[年龄,姓名]
注意:我不想触发查询,否则我会使用 ResultSetMetaData
【问题讨论】:
-
以最一般的形式,这将是一场噩梦。想象一下选择在 PIVOT 或 MATCH_RECOGNIZE 子句中创建的列...涉及列的表达式(分析函数、聚合、col1 + col2)...您需要这个做什么?
-
也许你可以试试JSqlParser:github.com/JSQLParser/JSqlParser
-
您需要使用任何可用的 oracle sql 解析器,标记输入并使用解析器库获得所需的结果。看看这个帖子对你有没有帮助stackoverflow.com/questions/5735791/parser-for-oracle-sql
-
您可以使用 DBMS_SQL.describe_columns