我在一个文件中有以下 SQL 文本。目标是从文件中识别数据库表名称。下面只是一个通用示例,我正在寻找通用解决方案,无论是 C# 还是 Perl。我没有做很多正则表达式,因此如果有人给我一个开始,我将不胜感激
select
a.xyz,
b.xyz,c.xyz,
d.xyz
from db1.test1 a
inner join db2.test2 b
on a.xyz = b.xyz
inner join
(
select a.xyz
from db1.test3) as c
on a.xyz=c.xyz
left outer join db1.test4 d
on c.xyz = d.xyz
所以基本上,我需要自动找出 SQL 中所有表的名称。在这种情况下,test1、test2、test3 和 test4
我知道模式是表名前面有“from”、“inner join”、“left outer join”,然后是数据库名称(例如 db1、db2 等),然后是文字 '。和表名。