最近在整理很多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