Thread: 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