解决方案 »

  1.   

    问题已经解决:
         http://q.cnblogs.com/q/69457/#c_866560
      

  2.   

    把关键代码贴过来了,方便下其他人吧,呵呵
    regexp_like(customername , '[^' || unistr('\4e00') || '-' || unistr('\9fa5') || ']')
      

  3.   

    --查询姓名字段是否出现非中文字符类型
    select * from table where asciistr(name) not like '%\%';
      

  4.   

    这是个问题...这个答案其实不对,稍微测试下就知道了。在正则匹配里,[?-?]是按照ascii码的顺序来设定范围,因此这里使用unistr本身就不对
    这个要靠谱得多。但是,匹配出来的不只是中文,而是所有的Unicode字符。也许可以通过asciistr(xxx) between ? and ?
    来缩小范围