我试图使用PostgreSQL 9.1将十六进制转换为十进制
使用此查询:
SELECT to_number('DEADBEEF', 'FMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ERROR: invalid input syntax for type numeric: " "
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我正在尝试将非常大数字的十六进制字符串转换为NUMERIC列
CREATE OR REPLACE FUNCTION hex_to_int(hexval varchar) RETURNS NUMERIC AS $$
DECLARE
result NUMERIC;
BEGIN
EXECUTE 'SELECT x''' || hexval || '''::NUMERIC(40,0)' INTO result;
RETURN result;
END;
$$
LANGUAGE 'plpgsql' IMMUTABLE STRICT;
Run Code Online (Sandbox Code Playgroud)
在那里我试图这样做:
select hex_to_int(tx.value) from internal_transaction tx
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
[42846] ERROR: cannot cast type bit to numeric Where: PL/pgSQL function hex_to_int(character varying) line 5 at EXECUTE statement
Run Code Online (Sandbox Code Playgroud)