gpt4 book ai didi

sql - Postgres : How to store bytea as value in hstore?

转载 作者:行者123 更新时间:2023-11-29 12:44:50 25 4
gpt4 key购买 nike

我正在尝试将 bytea 作为值存储在 hstore 中,但我不断收到以下错误:

function hstore(unknown, bytea) does not exist

这是我尝试过的:

UPDATE users set store = store || hstore('key1', pgp_pub_encrypt('testval',dearmor('xxxx')));

最佳答案

am trying to store a bytea as a value in hstore

如果没有某种编码,你不能安全地将 bytea 存储在 hstore 中,因为 hstore 在当前文本编码中存储为文本,但是bytea 没有文本编码,也可能包含在文本字符串中不合法的空字节。

因此您需要将 bytea 编码为十六进制、base64 或其他某种形式,使其成为当前编码中的有效文本。

最简单的方法是将其转换为 text,但我建议改为使用 encodedecode 到/从 base64。这种编码比 PostgreSQL 中用于 bytea 文本表示的 texthex 编码更紧凑,而且它也独立于bytea_output 设置。

例如

UPDATE users
SET store = store
|| hstore('key1', encode( pgp_pub_encrypt('testval',dearmor('xxxx'))), 'base64')
WHERE ... ;

关于sql - Postgres : How to store bytea as value in hstore?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29834772/

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