如sqlserver中的:
Select @S=convert(varchar,@Fnumber))
Select @BillID=@Fheader+replace(str(@Fnumber,3),' ','0')在oracle 应该怎样写:

解决方案 »

  1.   

    sqlserver                            oracle
       len                               length 
       datalength                        lengthb
       replace                           replace
       str()
       left                              
       rtrim                              rtrim
       charindex                         instrb --找出某个字符串的位置和字节数                                   instr  找出某个字符串的位置                      
    .. null                               nvl
    转换函数
    sqlserver                            oracle
    convert()                             to_char
    ......                                to_number 
                                          to_date
    ......
      

  2.   

    Select @S=convert(varchar,@Fnumber)) :
      S :=to_char(fnumber);
      或者: Select to_char(fnumber) into S from dual;
    Select @BillID=@Fheader+replace(str(@Fnumber,3),' ','0')
      BillID :=Fheader || replace(to_char(Fnumber),' ','0')
      

  3.   

    感谢 welyngj, lianhg(lianhg) 
    To: lianhg(lianhg) 
    在Sqlserver中
    Select @BillID=@Fheader+replace(str(@Fnumber,3),' ','0')
    可以使得@Billid在前面自动添加00: 如:@Fnumber=1 则输出结果为001,Fnumber=10,则输出结果为010BillID :=Fheader || replace(to_char(Fnumber),' ','0')
    但只能输出1,10
      

  4.   

    BillID :=Fheader || replace(to_char(Fnumber,'000'),' ','0')
      

  5.   

    还请教一个问题:
       有没有函数可以实现
         if Flen=1 then
           s:='0';
         else if flen=2 then 
           s:='00';
         else if flen=3 then
           s:='000';
         ..........
         end if;