Похоже, вы пытаетесь преобразовать из шестнадцатеричного в десятичное.В этом случае попробуйте следующее:
select x'10000'::integer
Результат равен
65536
Также
select x'1007f'::integer
Результат равен
65663
encode
и decode
немного отличаются.Например:
select decode('FE50','hex')
производит
\376P
Это то, что вы хотите?Я думаю, вы должны сказать
select x'FE50'::integer
, что дает вам
65104
Это, вероятно, то, что вы хотите, потому что вы, кажется, записываете начальную и конечную кодовые точки блоков Unicode.Я предполагаю, что идея заключается в том, что вы пытаетесь найти блок для данной кодовой точки, и для этого вам понадобятся целочисленные значения.
Это правда, что encode
/ decode
не любят строки снечетное количество символов, но я не думаю, что это то, что вы хотите.