如何在存储过程中判断 一个varchar2 的变量 是否只由 数字组成?

解决方案 »

  1.   

    wxmwxmwxm(毛毛毛毛)方法不能保证可行,要是一个长达1000位的数字,转化时就会出问题了
    建议这样,写一个函数进行判断,每1位或每几位进行一次判断,当然,判断就用转化成数据就可以了,最后返回结果。
      

  2.   

    if TRANSLATE(str,'1234567890','') is null then
    --全数字
    else
    --非全数字
    end if
      

  3.   

    if replace(TRANSLATE(str,'123456789','000000000'),'0') is null then
    --全数字
    else
    --非全数字
    end if
      

  4.   

    正则表达式 10G以上支持if REGEXP_LIKE (source_string, '[0-9]') then
    .........
      

  5.   

    if TRANSLATE(str,'a1234567890','a') is null
      

  6.   

    TRANSLATE不能解决问题,必须将所有字符都考虑进去才行
      

  7.   

    xuejinlong(-@判官@-) 的
    TRANSLATE(str,'1234567890','')
    好像不对,发现把数字翻译成''后总为null,如加个空格就可以即
    TRANSLATE(str,'1234567890',' ')