我在供应商的PostgreSQL 9.6.4中有一个函数,它返回SETOF "Values"
(我在\dT
的输出中没有看到这个类型),例如:
select "Data" from getlastvaluesnamed((E'341d0b24-...')::uuid,(E'G1')::text);
Data
--------
\x0015
我想以十进制的形式接收这个,所以尝试了十几个这样的请求:
select "Data"::int from getlastvaluesnamed(...);
ERROR: cannot cast type bytea to integer
select "Data"::text::int from getlastvaluesnamed(...);
ERROR: invalid input syntax for integer: "\x0015"
select to_number('123', "Data"::text) from getlastvaluesnamed(...);
to_number
-----------
3 << -- Wrong, should be 21
select encode("Data"::bytea, 'hex')::int from getlastvaluesnamed(...));
encode
--------
15 << -- Wrong, should be 21
等等。
我做错了什么?
1条答案
按热度按时间llmtgqce1#
如果bytea值始终为4位数字:
否则,对于小于9位的值:
在db<>fiddle.中测试