最近在整理很多SQL代码, 需要分析出每个SQL的目标表和源表各有哪些, 网上没有找到工作具, 打算写个工具.

Java调研结果:
1. 商业组件包 sqlparser 有试用版组件, 限制SQL少于10000字符,99天后过期
2. 使用 presto 的 parser 或 druid 的 parser. 
3. 使用 JSqlParser
时间紧任务重, 暂时先用商业组件包 sqlparser 试用版组件完成手头任务. 有空考虑 presto 和 JSqlParser 做一个工具.

Python 调研结果: https://github.com/andialbrecht/sqlparse 更好一些.

下面网上找到的资源:

有没有好用的开源sql语法分析器?
https://www.zhihu.com/question/51676071
讨论中有推荐 presto

利用 druid 的 sql parser 模块解析 sql 语句
http://www.cnblogs.com/etangyushan/p/5490183.html

JSqlParser
https://github.com/JSQLParser/JSqlParser
http://www.cnblogs.com/liuwt0911/p/4420472.html

python  
https://github.com/andialbrecht/sqlparse
https://pypi.org/project/PySQLParser/

商业组件包 sqlparser, 支持VCL/.Net/Java, 有试用版(限制SQL少于10000字符,99天后过期)
http://www.sqlparser.com/download.php

商业组件包 sqlparser的 python-bind(用C写的, 编译麻烦些)
https://github.com/TwoLaid/python-sqlparser

FoundationDB 的 sql-parser(FoundationDB已经转为闭源项目)
http://blog.csdn.net/isea533/article/details/38361911

sql parser的更多相关文章

  1. com.alibaba.druid.sql.parser.ParserException: syntax error, QUES %, pos 80 like报错解决

    最近,把各应用的jdbc连接池统一从dbcp2改成了druid,运行时druid报sql解析错误,如下: select * from test         where 1=1         &l ...

  2. 【spring boot】集成了druid后,同样的mybatis模糊查询语句出错Caused by: com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'name LIKE '%' ? '%'

    druid版本是 <!-- https://mvnrepository.com/artifact/com.alibaba/druid 数据库连接池--> <dependency> ...

  3. 利用 druid 的 sql parser 模块解析 sql 语句

    druid 是阿里开源在 github 上面的数据库连接池,里面有一个专门解析 sql 语句的模块   源码位置: https://github.com/alibaba/druid SQL Parse ...

  4. Spark SQL catalyst概述和SQL Parser的具体实现

    之前已经对spark core做了较为深入的解读,在如今SQL大行其道的背景下,spark中的SQL不仅在离线batch处理中使用广泛,structured streamming的实现也严重依赖spa ...

  5. 利用druid sql parser搞一些事情

    在最近的项目开发中,有这样一个需求,就是给定一个查询的sql,在where语句中添加几个条件语句.刚开始想的是,是否能用正则去做这个事情呢?其实不用语法树还是有一点困难的. 经过一系列google,看 ...

  6. Flink SQL与 SQL Parser ,calcite

    http://vinoyang.com/2017/06/12/flink-table-sql-source/ Flink Table&Sql 如何结合Apache Calcite http:/ ...

  7. 有时间了解一下Spark SQL parser的解析器架构

    1:了解大体架构 2:了解流程以及各个类的职责 3:尝试编写一个

  8. ORA-00907: 缺失右括号问题或com.alibaba.druid.sql.parser.ParserException: TODO :IDENTIFIER的原因

    以上只是说明错误的原因的一种.

  9. php-sql-parser sql防注入脚本

    <?php /** * SQL Parser from: http://code.google.com/p/php-sql-parser/ * License: New BSD */ class ...

随机推荐

  1. android设置透明度代码片段

    我们可以在代码中完成对窗体透明度(这是窗体本身的透明度,非背景)的设置,方法如下: WindowManager.LayoutParams windowLP = getWindow().getAttr ...

  2. 【BZOJ3601】一个人的数论(数论)

    [BZOJ3601]一个人的数论(数论) 题面 BZOJ 怎么这图片这么大啊... 题解 要求的是\(\displaystyle \sum_{i=1}^n [gcd(i,n)=1]i^d\) 然后把\ ...

  3. 51nod 1081 子段求和(线段树 | 树状数组 | 前缀和)

    题目链接:子段求和 题意:n个数字序列,m次询问,每次询问从第p个开始L长度序列的子段和为多少. 题解:线段树区间求和 | 树状数组区间求和 线段树: #include <cstdio> ...

  4. 单片机的编程语言和开发环境 LET′S TRY“嵌入式编程”: 3 of 6

    单片机的编程语言和开发环境 LET′S TRY“嵌入式编程”: 3 of 6 本连载讲解作为嵌入式系统开发技术人员所必需具备的基础知识.这些基础知识是硬件和软件技术人员都应该掌握的共通技术知识. 在“ ...

  5. hdu 2594 Simpsons’ Hidden Talents(扩展kmp)

    Problem Description Homer: Marge, I just figured out a way to discover some of the talents we weren’ ...

  6. Java io概述

    内容来源:http://ifeve.com/java-io/ Java IO 概述 输入流可以理解为向内存输入,输出流可以理解为从内存输出 Java的IO包主要关注的是从原始数据源的读取以及输出原始数 ...

  7. C# DateTimePicker控件获取他的年,月,日,时,分,秒

    CustomFormat属性设置为: yyyy-MM-dd HH:mm:ss 记住还要修改一个属性值,DateFormat属性 可选项改为Custom,默认是Long

  8. bzoj2208 连通数(bitset优化传递闭包)

    题目链接 思路 floyd求一下传递闭包,然后统计每个点可以到达的点数. 会tle,用bitset优化一下.将floyd的最后一层枚举变成bitset. 代码 /* * @Author: wxyww ...

  9. tfs 2013 利用 web deploy 完成asp.net站点自动发布

    课题起因: 目前我们团队使用visual studio 2013开发asp.net项目, 使用tfs2013 做源码管理, 每天早上手动发布项目文件包,复制到测试服务器的站点文件夹下覆盖老文件,用此方 ...

  10. mybatis 插入一条记录 参数为map的写法

    xml: <insert id="insertUser" parameterType="java.util.Map"> insert into us ...