PostgreSQL中的二进制转换程序(补充)

来源:百度文库 编辑:神马文学网 时间:2024/10/04 03:20:48
IP转换为整数:
select cast((int1::bit(64)<<24)|(int2::bit(64)<<16)|(int3::bit(64)<<8)|(int4::bit(64)) as bigint) into ret_ip;
二进制字符串转换为IP地址:
tmp_bit := str_bit::bit(64);
len := length(tmp_bit);
--先頭の32桁は ’0’です。
for i in 33..len by 8 loop
tmp_int := substring(tmp_bit, i, 8) :: bigint;
if i-32 = 1 then
ip :=  ip || tmp_int ;
else
ip :=  ip || ‘.‘ || tmp_int ;
end if;
end loop;