oracle字段ip匹配,oracle怎么截取ip地址

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值