解决方案 »

  1.   

    SELECT * FROM base  WHERE LENGTH(wapflow) < LENGTHB(wapflow)
    比较一下看有没有汉字OR
    select * from t1 where not regexp_like(a,'^[[:digit:]]+$');
    查一下不是数字的行
      

  2.   

    忘了讲了,wapflow的数据类型是字符串。
      

  3.   

    楼上的数字应该是指考虑了整形,未考虑正负号及小数点的情况
    补一个通用版的数字正则表达式
    regexp_like(wapflow,'^(\+|-)?[0-9]+(\.[0-9]+)?$')
      

  4.   

    楼上的数字应该是指考虑了整形,未考虑正负号及小数点的情况
    补一个通用版的数字正则表达式
    regexp_like(wapflow,'^(\+|-)?[0-9]+(\.[0-9]+)?$')考虑了,可以处理符号和小数,那个图片帖子请版主删除了吧
      

  5.   

    楼上的数字应该是指考虑了整形,未考虑正负号及小数点的情况
    补一个通用版的数字正则表达式
    regexp_like(wapflow,'^(\+|-)?[0-9]+(\.[0-9]+)?$')
    考虑了,可以处理符号和小数,那个图片帖子请版主删除了吧
    以下是测试结果,你的正则表达式对存在小数的数字是无法匹配的
    SQL> select 1 from dual where regexp_like('1.1','^[[:digit:]]+$');未选定行SQL> select 1 from dual where regexp_like('1.1','^(\+|-)?[0-9]+(\.[0-9]+)?$');         1
    ----------
             1SQL>
      

  6.   

    --空字符串删除
    DELETE base WHERE wapflow = ''
    --wapflow中有非数字字符的删除
    DELETE base WHERE LENGTH(TRANSLATE(wapflow,'1234567890','')) > 0