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

来源:百度文库 编辑:神马文学网 时间:2024/04/29 10:04:14
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;