2

有谁知道解构 SQL 语句的方法(采用 select SQL 语句,从每个 SELECT 中提取列,从每个 FOR 和每个 JOIN 中提取表,以及从每个 WHERE 中过滤条件。然后我可以将这些数据放入 BOM 表中创建查询的“地图”),包括子查询,使用 VBA?我有一个将 Teradata 视图映射到 Access DB 的项目。我想有一个自动化的方法来做到这一点。

4

1 回答 1

1

您想访问 SQL 查询的任意子结构(包括子 SELECT)?您需要的是感兴趣的 SQL 方言的完整解析器。

SQL 是一种非常庞大且复杂的语言。可以手动编写递归下降解析器来执行此操作,但工作量很大。使用解析器生成器和 SQL BNF 来提供它可能会更好。

但是您想在 VBA 中执行此操作的事实暗示您不太可能找到这样的解析器生成器。如果您希望有合理的机会以适度的努力做到这一点,您可能必须调用以另一种语言(例如,C#)编码的解析器生成器,并找到一个预先存在的 SQL 解析器。

于 2010-09-06T03:14:50.907 回答