300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Greenplum小把戏 - ip地址表达方式转换函数

Greenplum小把戏 - ip地址表达方式转换函数

时间:2023-05-21 17:45:44

相关推荐

Greenplum小把戏 - ip地址表达方式转换函数

正常大家平时所见的IP地址通常是用点号(.)分割的四组数字,例如:192.168.0.100,但是做通信行业的朋友可能会比较习惯在数据库表中存储长整型(long)数字,以方便查询比较和节约存储。

如果采用这种方式,那么会经常遇到在点号分割传和长整型之间的转换,在Greenplum中,我们可以通过下面两个函数实现二者之间的轻松转换:

函数主体为:

CREATE OR REPLACE FUNCTION inet_aton(text)RETURNS bigint AS$BODY$SELECTsplit_part($1,'.',1)::int8*(256*256*256)+split_part($1,'.',2)::int8*(256*256)+split_part($1,'.',3)::int8*256+split_part($1,'.',4)::int8;$BODY$LANGUAGE sql VOLATILE;

CREATE OR REPLACE FUNCTION inet_ntoa(bigint)RETURNS text AS$BODY$SELECT (($1>>24) & 255::int8) || '.' ||(($1>>16) & 255::int8) || '.' ||(($1>>8) & 255::int8) || '.' ||($1 & 255::int8) as result$BODY$LANGUAGE sql VOLATILE;

使用演示:

postgres=# select inet_aton('192.168.100.107');inet_aton------------3232261227(1 row)postgres=# select inet_ntoa(3232261227);inet_ntoa-----------------192.168.100.107(1 row)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。