如何批量从sql语句中提取表名

简介

使用的卢易表 的提取表名功能,可以从sql语句中批量提取表名。采用纯文本sql语法分析,无需连接数据库,支持从含非sql语句的文件文件中提取,支持各类数据库sql语法。

特点

快:从成百个文件中提取上千个表名只需1s

准:迄今为止从纯sql文件中提取表名的准确率为100%,从包含非sql语句的文件中提取的表名完整度为100%

狠:采用纯文本sql语法分析,无需连接数据库,支持从含非sql语句的文件文件中提取,支持各类数据库sql语法

使用方法

1.点击【提取表名】

2.选择需要提取表名的文本文件,可多选

3.点击开始

示例

支持错误语法
支持包含非sql文本
支持各种文本文件格式
with tmp_table1 as( 
select 
a.id as id, 
b.name as name, -- from 
c.city,
' from 
aa',
--select * from comment_table1 a join comment_table2 b on a.id = b.id where 1=1
66/*select * from comment_table3 a join comment_table4 b on a.id = b.id
where 1=1
--test
*/
,
(select a.name from country a where a.id = c.countryid) as country,
'---',
(select nvl(c.country,' ') from dual as a) as country1,
a.amount,
decode(d.email,'xxx',' select ',nvl(e.name,' from ')),
'a
aa' name1,
' where ' as  test
from order as a 
left join user1. customer b on (a.custid = b.id)  and b.sex in ('0','1','2')
join address c on c.id = b.addressid
left join (select custid, max(email) email from contact a where email is not null group by custid) d on d.custid =b.id,
company e
where e.id = b.companyid
union all
select 
*
from (select * from order as b) as a ,(select * from customer as b) b --,comment_table3
, address c 
,(select custid, max(email) email from contact a where email is not null group by custid) d 
where a.id = (select 1 from dual)
and b.custid = subsrr(b.id,1,8)
and b.addressid = c.id
and d.custid = b.id
),
tmp_table2 AS
(
select * from (select * from user1 . order a join user2.customer b on a.custid = b.id)
)
select a.custid, sum(amount) from tmp_table1 a, tmp_table2 b 
where a.id = b.id
and a.id exists(select * from order c where c.amout >= 10000 )
and b.date >= add_months((select sysdate from dual),-12)
group by a.custid

提取结果:

附软件官方网站及下载地址:

的卢易表官方网站http://​www.diluauto.com/products/dilu-easyexcel.html

上一篇:Redis 配置小插曲


下一篇:【Linux 从基础到进阶】入侵检测与防御系统(IDS/IPS)