Thread: parsing a string with a hexadecimal notation

parsing a string with a hexadecimal notation

From
KÖPFERL Robert
Date:
I intend to retrieve an int value in an integer variable from a string with
a hexadecimal notation of a number.
Which function is appropriate to  do i int4 
i = ???('BEAF')


Re: parsing a string with a hexadecimal notation

From
Achilleus Mantzios
Date:
O KΦPFERL Robert έγραψε στις Feb 9, 2005 :

> I intend to retrieve an int value in an integer variable from a string with
> a hexadecimal notation of a number.
> Which function is appropriate to  do 
>  i int4 
> i = ???('BEAF')

You can do something like

foodb=# SELECT int4(X'FF'::bit varying);int4
------ 255
(1 row)

but i suspect you must prepare your statement out of sql.

E.g. in java:

String hex="FF";
st = con.prepareStatement("select int4(X'"+hex+"'::bit varying");

> 
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
> 

-- 
-Achilleus



Re: parsing a string with a hexadecimal notation

From
Tom Lane
Date:
Achilleus Mantzios <achill@matrix.gatewaynet.com> writes:
> You can do something like

> foodb=# SELECT int4(X'FF'::bit varying);
>  int4
> ------
>   255
> (1 row)

> but i suspect you must prepare your statement out of sql.

No, I think you could do it with a placeholder if you wanted.  The
secret is the (poorly documented) external syntax for a hex bit string:

regression=# select 'xBEEF'::bit varying;     varbit
------------------1011111011101111
(1 row)

So it should work to do "SELECT int4($1::bit varying)" and then pass
'xBEEF' as the string value for the parameter.
        regards, tom lane


Re: parsing a string with a hexadecimal notation

From
KÖPFERL Robert
Date:
> So it should work to do "SELECT int4($1::bit varying)" and then pass
> 'xBEEF' as the string value for the parameter.
> 
>             regards, tom lane

Thanks, that worked for me