sqlserver的函数如何转换为oracle 10g的函数,这是一个转换ip地址的函数原ip地址不带“点” 
USE [_db]
GO
/****** Object:  UserDefinedFunction [dbo].[uf_ip_2]    Script Date: 07/13/2013 12:10:48 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO/****** 对象:  用户定义的函数 dbo.uf_ip_2    脚本日期: 2012-7-1 17:15:31 ******/
ALTER FUNCTION [dbo].[uf_ip_2] (@in bigint)  
RETURNS varchar(15)  AS  
BEGIN 
declare @ret as char(32)
declare @val as bigint
declare @bt as char
declare  @ip as varchar(15)
declare @str as char(8)
declare @i as bigint
declare @j as bigintselect @ret=''
select @val=@in
while @val > 0
begin
    select @val=@in/2
    select @bt=@in-@val*2
    select @in=@val
    select @ret=@bt+@ret
endselect @ret=substring('00000000000000000000000000000000',1,32-len(@ret))+@ret
select @i=0
select @ip=''
while @i<4
begin
    select @j=0
    select @str=substring(@ret,@i*8+1,8)
    select @val=0
    while @j<8
    begin
        select @val=@val+substring(@str,@j+1,1)*power(2,7-@j)
        select @j=@j+1
    end
    if @i<3
    begin
       select @ip=@ip+rtrim(str(@val,3))+'.'
    end
    else
    begin
       select @ip=@ip+rtrim(str(@val,3))
    end
    select @i=@i+1
end    return replace(@ip,' ','0')
END