Thread: What's the logical counterpart of the to_hex function?
I have data (from an external source) which is in text format as a hex number (it's actually an IP address, but that's probably not relevant.)
to_hex gets from integer to hex, I can cast a hex constant to integer (ie x'12a7'31'::int, but how do I get a database column from string/hex to integer?
(If this is referenced in the documentation, I'm not finding it.)
--
Mike Nolan
to_hex gets from integer to hex, I can cast a hex constant to integer (ie x'12a7'31'::int, but how do I get a database column from string/hex to integer?
(If this is referenced in the documentation, I'm not finding it.)
--
Mike Nolan
On Jul 16, 2007, at 11:36 AM, Michael Nolan wrote: > I have data (from an external source) which is in text format as a > hex number (it's actually an IP address, but that's probably not > relevant.) It likely is relevant, as it means it's a 32 bit unsigned integer, which isn't something postgresql supports. Depending on what you need you might want to look at using 32 bit signed, with a 2^31 offset, 64 bit signed, inet or ip4 (which is on pgfoundry, not built-in). > > to_hex gets from integer to hex, I can cast a hex constant to > integer (ie x'12a7'31'::int, but how do I get a database column > from string/hex to integer? > Last time I checked the suggested way to do this was with a plpgsql function that dynamically creates the cast and does it with exec. Google for postgresql and hex and you can likely find sample code. Cheers, Steve
On 7/16/07, Steve Atkins <steve@blighty.com> wrote:
Actually, since what I need are the 4 dotted tuples, all I really need is a simple way to convert a two byte hex field to an integer, it sounds like the exec is the preferred (though IMHO clumsy) method.
--
On Jul 16, 2007, at 11:36 AM, Michael Nolan wrote:
> I have data (from an external source) which is in text format as a
> hex number (it's actually an IP address, but that's probably not
> relevant.)
It likely is relevant, as it means it's a 32 bit unsigned integer,
which isn't something postgresql supports. Depending on what you need
you might want to look at using 32 bit signed, with a 2^31 offset, 64
bit signed, inet or ip4 (which is on pgfoundry, not built-in).
Actually, since what I need are the 4 dotted tuples, all I really need is a simple way to convert a two byte hex field to an integer, it sounds like the exec is the preferred (though IMHO clumsy) method.
Mike Nolan