我在单独的文本文件中有 150 多个 SQL 查询,我需要分析这些查询(只是实际的 SQL 代码,而不是数据结果),以便识别所有使用的列名和表名。最好是每列和表格出现的次数。使用嵌套的 SELECT 语句等编写一个全新的 SQL 解析程序比看起来要复杂得多。
必须有一个程序或代码可以做到这一点(或接近这个),但我还没有找到它。
我实际上最终使用了一个名为 SQL Pretty Printer的工具。您可以购买桌面版,但我只是使用了免费的在线应用程序。只需将查询复制到文本框中,将输出设置为“列出数据库对象”,然后单击格式化 SQL 按钮。
使用大约 150 个不同(和复杂)的 SQL 查询,它工作得很好。
在 MS SQLServer 中使用执行计划报告怎么样?您可以将其保存到一个 xml 文件中,然后可以对其进行解析。
如果您的应用程序需要这样做,并且可以访问包含表等的数据库,您可以运行类似:
SELECT TOP 0 * FROM MY_TABLE
使用 ADO.NET。这将为您提供一个 DataTable 实例,您可以查询其列及其属性。
请与 antlr 一起...写一个语法 n 按照步骤..在 antlr 站点中给出..最终你会得到 AST(抽象语法树)。对于给定的查询......我们可以遍历它并带来查询中存在的所有表,列......
在 DB2 中,您可以在查询中附加如下内容,但 1 是您可以指定的最小值;如果您尝试指定 0,它将引发错误:
FETCH FIRST 1 ROW ONLY