在线急等 求帮忙解析SQL语句问题!
如题 如何才能够解析SQL语句。对方传过来一个SQL语句 需要解析 返回这个SQL语句包含的表名,列名。
如何处理。
感觉各种情况太多了 太棘手了。
求各位大哥大姐 帮忙。
------解决方案--------------------这个有些麻烦
需要写多个正则 逐一匹配
比如 "from xxx" "update xxx" .... 匹配成功后xxx就是表名
等等吧,需要把sql每一种操作 的情况都匹配出来。
------解决方案--------------------很好的问题,帮顶。挺麻烦的,要考虑的情况太多了,比如加了dbo或别的owner,或者对象名加了中括号,甚至linkedserver的四段式写法
------解决方案--------------------http://www.blogjava.net/anwenhao/archive/2007/06/25/126127.html
------解决方案--------------------将传过来的Sql语句连接Sql Server后执行(请一定连接没有任何表的库);
这样会获取到异常
如:
对象名 'CI_Meet' 无效,
对象名 'CI_MyMeet' 无效。
解析出错后的异常信息即可获取全部表名;
然后在库中创建所解析到的表再次执行Sql语句
同样会出异常
如:
列名 'AAA' 无效,
列名 'BBB' 无效。
再次解析异常信息即可的到字段名
不知道这方法行不,您可以试下