请教有什么好的方法可以从程序中解析出 sql 语句?

2015-03-11 15:14:16 +08:00
 zxq1002
从源码目录中解析出所有文件中的sql语句
2340 次点击
所在节点    问与答
12 条回复
sophymax
2015-03-11 15:25:36 +08:00
想不出比正则更好的方法
router
2015-03-11 15:56:00 +08:00
源码都有,还怕找不到地儿?
正常情况,类似功能会写在一块儿,容易找的吧,如果访问db的写的很乱,你要解析这些干嘛呢?
dong3580
2015-03-11 16:00:21 +08:00
@router
你还真别说,遇到某些脑残的代码,SQL语句找不到一个。。。然后会发现各种拼接,正则无能为力,这个时候只能顺着路走代码,没办法。
shiny
2015-03-11 16:02:26 +08:00
讲讲为什么需要这么做,应该会有更好的建议。
liwei
2015-03-11 16:07:13 +08:00
把数据库的接口加一层封装,在执行SQL前把SQL打印出来。
linzy
2015-03-11 16:57:47 +08:00
mssql的话,可以用sqlprofile工具,跑一下程序,都捕获到了~~
xinple
2015-03-11 17:19:39 +08:00
修改数据库类,每次执行sql语句的时候,把sql语句记录到log
然后程序跑一边
hackwjfz
2015-03-11 17:28:44 +08:00
MySQL的话,日志可以记录造成修改的sql语句。
用--log-bin选项启动,mysqld将数据变更情况写入日志。
通过mysqlbinlog工具查看。
kchum
2015-03-11 17:31:29 +08:00
@hackwjfz 这个效率快多了,每一个框架都不一样,有些可能还有 SQL 输出,自建框架,那就头大了。
kchum
2015-03-11 17:32:03 +08:00
还有是否考虑是否部分加密的问题。
ETiV
2015-03-11 18:14:09 +08:00
关键字:mysql general-log
自己搜
zxq1002
2015-03-12 09:39:35 +08:00
@ETiV
@hackwjfz
@linzy
不是mysql,是oracle,程序量比较大,类型也很多,java,pro*c,shell,package等等都有

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/176089

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX