Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
有谁知道解构 SQL 语句的方法(采用 select SQL 语句,从每个 SELECT 中提取列,从每个 FOR 和每个 JOIN 中提取表,以及从每个 WHERE 中过滤条件。然后我可以将这些数据放入 BOM 表中创建查询的“地图”),包括子查询,使用 VBA?我有一个将 Teradata 视图映射到 Access DB 的项目。我想有一个自动化的方法来做到这一点。
您想访问 SQL 查询的任意子结构(包括子 SELECT)?您需要的是感兴趣的 SQL 方言的完整解析器。
SQL 是一种非常庞大且复杂的语言。可以手动编写递归下降解析器来执行此操作,但工作量很大。使用解析器生成器和 SQL BNF 来提供它可能会更好。
但是您想在 VBA 中执行此操作的事实暗示您不太可能找到这样的解析器生成器。如果您希望有合理的机会以适度的努力做到这一点,您可能必须调用以另一种语言(例如,C#)编码的解析器生成器,并找到一个预先存在的 SQL 解析器。