SQLUtils.parseStatements 解析SQLServer 的 while语法和pivot语法 报错
bfhwhh0e1#
请问这两个语法是否可以支持解析呢
z9gpfhce2#
或者有没有其他的解析工具推荐呢,更或者怎么样自己重写一下实现解析也可,有没有大佬提供一下思路,
k5hmc34c3#
java还有一个是Jsqlparser解析器,但是Jsqlparser初步调研感觉还没druid parser靠谱.还有一个收费的gsqlparser,这是收费闭源,但是感觉语法支持应该是3个中最好的,毕竟收费而且是专门做sqlparser的.这些是java现成能用的parser,然后还有一条路线是antrl,自己编写语法文件,antrl自动帮你生成ast.最后的路线就是像温少一样,自己编码手撸一个parser了.总结就是:现成的有3->自己编语法文件->完全自己动手,丰衣足食.3条线感觉难度渐次上升,但是对解析器的掌控也是越来越强.
uajslkp64#
确实是这样,generalSqlParser贵的离谱没勾一个数据库的支持就多加将近9w,他有90天试用,跑了一下确实是很强,然鹅没钱,当然有钱也不会买哈哈哈哈😅(不知道有没有大佬破解),真的是不想花费时间在sql解析上,我的sql解析的场景并不多,觉得自己动手时间成本太高,两难 目前想着没有好的办法就绕过不支持的语法特殊处理好了
klsxnrf15#
你选的是最贵的那种协议吧,我记得如果你选single developer的话,一个数据库1w不到
1tuwyuhd6#
是没错 single便宜,但是我们的应用(产品)得部署多个项目上,项目组决定并不想因为一个解析器有额外支出
9w11ddsr7#
那老哥你们现在准备走什么技术路线呢?我们项目对sql parser的要求还挺高,算是项目的核心了,也是很纠结怎么搞.你要gsqlparser的资源?留个邮箱吧.我发给你.
mf98qq948#
给
那真是万分感激,我们目前对一些基础的sql解析都是用druid去做,事实上我们有个类似于plsql的功能,不同的是我们耦合进去了业务参数,用户的sql脚本可以保存并用于跑批预警出报告等,解析sql目前主要是为了鉴权,我们有对数据表级别的权限控制,另外业务库和数仓是分开的,所以还需要解析出表去替换真实表名再执行等等吧。 附上邮箱: activehx@163.com 再次感谢老哥
8条答案
按热度按时间bfhwhh0e1#
请问这两个语法是否可以支持解析呢
z9gpfhce2#
或者有没有其他的解析工具推荐呢,更或者怎么样自己重写一下实现解析也可,有没有大佬提供一下思路,
k5hmc34c3#
或者有没有其他的解析工具推荐呢,更或者怎么样自己重写一下实现解析也可,有没有大佬提供一下思路,
java还有一个是Jsqlparser解析器,但是Jsqlparser初步调研感觉还没druid parser靠谱.还有一个收费的gsqlparser,这是收费闭源,但是感觉语法支持应该是3个中最好的,毕竟收费而且是专门做sqlparser的.这些是java现成能用的parser,然后还有一条路线是antrl,自己编写语法文件,antrl自动帮你生成ast.最后的路线就是像温少一样,自己编码手撸一个parser了.总结就是:现成的有3->自己编语法文件->完全自己动手,丰衣足食.3条线感觉难度渐次上升,但是对解析器的掌控也是越来越强.
uajslkp64#
确实是这样,generalSqlParser贵的离谱没勾一个数据库的支持就多加将近9w,他有90天试用,跑了一下确实是很强,然鹅没钱,当然有钱也不会买哈哈哈哈😅(不知道有没有大佬破解),真的是不想花费时间在sql解析上,我的sql解析的场景并不多,觉得自己动手时间成本太高,两难 目前想着没有好的办法就绕过不支持的语法特殊处理好了
klsxnrf15#
确实是这样,generalSqlParser贵的离谱没勾一个数据库的支持就多加将近9w,他有90天试用,跑了一下确实是很强,然鹅没钱,当然有钱也不会买哈哈哈哈😅(不知道有没有大佬破解),真的是不想花费时间在sql解析上,我的sql解析的场景并不多,觉得自己动手时间成本太高,两难 目前想着没有好的办法就绕过不支持的语法特殊处理好了
你选的是最贵的那种协议吧,我记得如果你选single developer的话,一个数据库1w不到
1tuwyuhd6#
确实是这样,generalSqlParser贵的离谱没勾一个数据库的支持就多加将近9w,他有90天试用,跑了一下确实是很强,然鹅没钱,当然有钱也不会买哈哈哈哈😅(不知道有没有大佬破解),真的是不想花费时间在sql解析上,我的sql解析的场景并不多,觉得自己动手时间成本太高,两难 目前想着没有好的办法就绕过不支持的语法特殊处理好了
你选的是最贵的那种协议吧,我记得如果你选single developer的话,一个数据库1w不到
是没错 single便宜,但是我们的应用(产品)得部署多个项目上,项目组决定并不想因为一个解析器有额外支出
9w11ddsr7#
确实是这样,generalSqlParser贵的离谱没勾一个数据库的支持就多加将近9w,他有90天试用,跑了一下确实是很强,然鹅没钱,当然有钱也不会买哈哈哈哈😅(不知道有没有大佬破解),真的是不想花费时间在sql解析上,我的sql解析的场景并不多,觉得自己动手时间成本太高,两难 目前想着没有好的办法就绕过不支持的语法特殊处理好了
你选的是最贵的那种协议吧,我记得如果你选single developer的话,一个数据库1w不到
是没错 single便宜,但是我们的应用(产品)得部署多个项目上,项目组决定并不想因为一个解析器有额外支出
那老哥你们现在准备走什么技术路线呢?我们项目对sql parser的要求还挺高,算是项目的核心了,也是很纠结怎么搞.你要gsqlparser的资源?留个邮箱吧.我发给你.
mf98qq948#
给
那真是万分感激,我们目前对一些基础的sql解析都是用druid去做,事实上我们有个类似于plsql的功能,不同的是我们耦合进去了业务参数,用户的sql脚本可以保存并用于跑批预警出报告等,解析sql目前主要是为了鉴权,我们有对数据表级别的权限控制,另外业务库和数仓是分开的,所以还需要解析出表去替换真实表名再执行等等吧。 附上邮箱: activehx@163.com 再次感谢老哥