求一个plsql中的英数字check方法

解决方案 »

  1.   

    to_number() 然后捕捉错误 ORA-01722: invalid number,能成功被转换的即为数字。
      

  2.   

    包括英文的哦,用to_number 英文肯定被拦住了
      

  3.   


     decode(length(字段),length(regexp_substr(字段,[[:alnum:]]+,1,1)),'是','否')
      

  4.   


    --少个引号
    decode(length(字段),length(regexp_substr(字段,'[[:alnum:]]+',1,1)),'是','否')
      

  5.   

    --是要某个字段全部是英文字母或者数字吗?
    --可以用
    select * from 表格 where regexp_like(字段, '^[[:alnum:]]+$');--例如:
    select * from dual where regexp_like('abc123', '^[[:alnum:]]+$');
    --返回
    D
    -
    Xselect * from dual where regexp_like('abc-123', '^[[:alnum:]]+$');
    --返回
    no rows selected
      

  6.   


    --判断英数字
    decode(length(字段),length(regexp_substr(字段,'[[:alnum:]]+',1,1)),'是','否')
    --判断全半角
    decode(lengthb(字段),lengthb(to_single_byte(字段)),'不含全角','含全角')