结合LPAD,或者RPAD使用就解决了

解决方案 »

  1.   

    哦,我一初还以为length,LPAD,这些函数只能在SQL里面用,那我知道怎样做了
      

  2.   

    select to_char('344','0000') from dual
    --n为字符,要先转换成数字, 然后才能执行计算m:=to_number(start_num)-1;select to_char(m,'0000') from dual;
      

  3.   

    select  LPAD(to_char(to_number(start_num)-1),length(start_num),'0') into v from dual;
      

  4.   

    n:='0008';
    m:=startno-1;
    m:=lpad(m,length(n),'0');
    我是这样做的to dinya2003(OK)
    不是oracle会自动转换的吗?
      

  5.   

    写错
    n:=start_num;
    m:=start_num-1;
    m:=lpad(m,length(n),'0');
    我是这样做的
      

  6.   

    有的类型之间的计算oracle系统会隐式转换的, 但是为了程序的可维护性及,还是建议用显示的转换函数来显式转换,减少出错的可能性比如start_num 被误输入了一个字符串: '008o'     <--最后一个是字符  opret,这样的话用to_number转换一下可以用异常来捕捉到错误以便处理.