gpt4 book ai didi

postgresql - 如何将二进制数转换为bytea?

转载 作者:行者123 更新时间:2023-11-29 12:08:39 27 4
gpt4 key购买 nike

select
'1000000011011110101111100001101101100000011100110011001100111111'::bit(64)
as x;

我需要转换为其他表示形式,例如十六进制、base64 或在用于 base36 或 base58 转换的函数中使用它...因此需要转换为 bytea。但是没有 x::bytea最简单的方法是什么?

最佳答案

使用decode():

with data(val) as (
values (
'1000000011011110101111100001101101100000011100110011001100111111'::bit(64))
)

select decode(to_hex(val::bigint), 'hex')
from data;

decode
--------------------
\x80debe1b6073333f
(1 row)

函数返回bytea,你可以将其编码为base64:

select encode(decode(to_hex(val::bigint), 'hex'), 'base64')
from data;

encode
--------------
gN6+G2BzMz8=
(1 row)

注意:对于比 bigint 更大的二进制文件,您需要使用 GMP external extensionmpz 数据类型...并检查转换为 bytea 是否工作正常,或者使用 GMP 直接转换。

关于postgresql - 如何将二进制数转换为bytea?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48521189/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com