Обсуждение: parsing a string with a hexadecimal notation
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')
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
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
> 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