请问各位,在Oracle 10G R2中,怎么使用正规表达式来查看字段中是不是包含中文全角字符啊?例如“,。?《》”之类的

解决方案 »

  1.   


    select * from aaa
    where regexp_like(name,'[^\x00-\xff]')用这个公式会查出所有结果,全角的半角的都出来了,应该怎么修改啊?
      

  2.   

    如果是中文字符集,要查询是否包含全角可用
    select * from aaa where length(name)<>lengthb(name);
      

  3.   

    字段中包含中文的,只要全是中文全角的lengthb(name)的值是length(name)的2倍啊。现在是想查询中,这个些中文是不是包含全角的字符,系统中除了汉字外想使用半角的字符
      

  4.   


    ---等于0代表没有,大于0代表包含中文全角字符
    SQL> select regexp_instr('safafsdf?sdfasdf','[^a-z|A-Z|0-9]') from dual;REGEXP_INSTR('SAFAFSDF?SDFASDF
    ------------------------------
                                 9SQL> select regexp_instr('safafsdfsdfasdf','[^a-z|A-Z|0-9]') from dual;REGEXP_INSTR('SAFAFSDFSDFASDF'
    ------------------------------
                                 0SQL> select regexp_instr('safa《fsdfsdfasdf','[^a-z|A-Z|0-9]') from dual;REGEXP_INSTR('SAFA《FSDFSDFASD
    ------------------------------
                                 5SQL> 
      

  5.   

    只会用length,lengthb 比较,正则表达式不会,学习中
      

  6.   

    用select regexp_instr('safafsdf?sdfasdf','[^a-z|A-Z|0-9]') from dual;是查询出非子母与非数字字符的位置,现在需要的结果是,只查出全角字符,而不只是非数字与非字母字符。例如如果是“,.?()”都是可以的,但是是“,。?()”是不可以的。
    现在想确认的就是字符中是否包含“,。?()”