This might help you Use TO_NUMBER( hex_value, , 'xxxxxxxxxx' ) (where the number of xs is the maximum length of your hexadecimal VARCHAR2 column): Oracle Setup:
CREATE TABLE ok_dc.gms3_vc_mme_vin_si_detail ( vc_vin_vis_start_range ) AS
SELECT '1' FROM DUAL UNION ALL
SELECT 'FFFFF' FROM DUAL UNION ALL
SELECT '100001' FROM DUAL UNION ALL
SELECT '100002' FROM DUAL UNION ALL
SELECT NULL FROM DUAL;
WHERE TO_NUMBER(vc_vin_vis_start_range, 'xxxxxxxxxx') >= TO_NUMBER('100001', 'xxxxxxxxxx');
With these it helps int x = 0x1fe; and int x = 510; are the exact same thing to the computer (or more specifically, to the compiler -- the actual hardware will never see "0x1fe" or "510" -- it will only see the binary version) so your question doesn't make much sense. Changing the base only changes the representation of a value; it doesn't change the actual value. If you have 1012 apples, and you have 510 apples, you still have the same amount of apples.
To fix this issue Below a QbyteArray is created and it contains a byte with the hexadecimal value 49. 49 is one byte of data written in memory, it isn't an ASCII string representation of 49 (which is 2 bytes) , In C/C++, a hexadecimal integer literal is prefixed with 0x. So:
this one helps. Hi thank you for all your ideas, I try everything and manage to get some results, but not the best results, so I convince the costumer to let me create another table to relate the coordinates with the id on the original table on a number format, i will do this tomorrow and change all the related code to work with the new table. But still thank you a lot, and for me the correct answer was to change the type of the column but ...