CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

处理一个sql语句,如何找到不匹配的")"

楼主tylgl()2006-06-04 00:05:31 在 Java / J2SE / 基础类 提问

我要处理一个sql语句     (处理为空的)比如:      
  "select     *     from     (select     *     from     table1     where     a=23     and     b<'')     where     col2     =     and     col2>12     and     col3     BETWEEN     11     and     "      
  现在有三个地方     "b<''","col2     =","col3     BETWEEN     11     and     "由于他们的值为空(这个值我是从数据库中查的,没有就为null)我就是要把这些字句删除了      
  处理结果应该是:"select     *     from     (select     *     from     table1     where     a=23     )     where         col2>12     "      
  现在我的思路是将所有的关键字除where换成")("(where替换为"(")然后找到每个子句调用处理程序判断处理,     现在有一个问题是在处理嵌套的情况时,最里面一层的最右边的子嵌套替换后缺少一个")"     例如:(()()(*)         *位置就代表缺少的")"现在怎么找到它并返回它的位置      
  (子句开头和结尾的位置是我在删除时的依据)我现在的想法是用栈来实现,然后从外往里扫描,但好像不行      
  希望大家给个能找到那个缺少的")"的方法      
  当然如果有更好的处理这样sql语句的想法也行,我可以重新实现 问题点数:40、回复次数:3Top

1 楼tylgl()回复于 2006-06-04 00:11:13 得分 0

现在我只要处理select的   其他update   insert不涉及,还有我是在oracle下的可能还有考虑一些oracle的函数  
  Top

2 楼huataixiang19810225(无名)回复于 2006-06-04 11:24:30 得分 0

判断某个字段为空:  
  Where   field_Test   is   null  
   
  如果要用到过滤特殊字符,例如回车,TAb键等使用escape关键字,建议看看PL/SQL  
   
  我还是没有弄明白你要干什么Top

3 楼tylgl()回复于 2006-06-04 23:25:58 得分 0

我要做的就是处理sql语句里约束条件部分,变量为空的情况,如果为空则删除字句啊  
  select     *     from     (select     *     from     table1     where     a=23     and     b<'')     where     col2     =     and     col2>12     and     col3     BETWEEN     11     and     "      
  现在有三个地方     "b<''","col2     =","col3     BETWEEN     11     and     "由于他们的值为空(这个值我是从数据库中查的,没有就为null)我就是要把这些字句删除了      
  处理结果应该是:"select     *     from     (select     *     from     table1     where     a=23     )     where         col2>12     "  
  这个就是处理的例子Top

相关问题

关键词

得分解答快速导航

  • 帖主:tylgl

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo