欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

oracle怎么截取ip地址

更新时间: 2014-01-05 02:10:33 责任编辑: Author_N1

 

oracle如何截取ip地址
库中有一列存放ip地址 但是所有的ip地址都不含有"." 比如11101113 19216811 19216912121我要转成带点的 11.10.11.13这样 如何才能更准确的的截取到ip地址呢
--参考方法--
这种格式貌似不能确定准确的IP内容.给你点SQL SERVER的资料,参考一下:

/*
标题:字符串IP地址和IP数值互换函数
作者:爱新觉罗·毓华(十八年风雨,守得冰山雪莲花开) 
时间:2009-07-17
地点:新疆乌鲁木齐
*/


--1. 字符串IP地址转换成IP数值函数。
CREATE FUNCTION dbo.f_IPtoInt(@ip char(15))RETURNS bigint
AS
BEGIN
    DECLARE @re bigint
    SET @re = 0
    SELECT @re = @re + LEFT(@ip , CHARINDEX('.' , @ip + '.') - 1) * ID ,
           @ip = STUFF(@ip , 1 , CHARINDEX('.' , @ip + '.') , '')
    FROM
    (
        SELECT ID = CAST(16777216 as bigint)
        UNION ALL SELECT 65536
        UNION ALL SELECT 256
        UNION ALL SELECT 1
    ) a
    RETURN(@re)
END
GO

select dbo.f_IPtoInt('192.168.20.179') ip_int

/*
ip_int               
-------------------- 
3232240819

(所影响的行数为 1 行)
*/

drop function dbo.f_IPtoInt


--2. 字符串IP地址转换成IP数值函数。
CREATE FUNCTION dbo.f_InttoIP(@IP bigint)RETURNS varchar(15)
AS
BEGIN
    DECLARE @re varchar(15)
    SET @re = ''
    SELECT @re = @re + '.' + CAST(@IP/ID as varchar) , @IP = @IP % ID
    FROM
    (
        SELECT ID = CAST(16777216 as bigint)
        UNION ALL SELECT 65536
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:10:33
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6540/
本文WWW.DOC100.NET DOC100.NET版权所有。