在Postgres中,当我想将varchar保存到bytea列中时,通过隐式转换使此操作变得容易。这样我就可以执行
UPDATE my_table SET my_bytea_col = 'This varchar will be converted' WHERE id = 1;
我一直都用这个。但是,我偶尔会将此列的内容视为varchar。 IDE将为您处理此问题,但是在我的用例中,我希望将将bytea转换为varchar的结果返回。
当然,我已经尝试过类似的操作,其中包括更复杂的选项:
select my_bytea_col::VARCHAR from my_table WHERE id = 1
但是,这不会返回我的原始可读文本。在更新和插入类似上述内容的postgres后,如何将我的bytea转换回原始的varchar?
答案 0 :(得分:3)
如果字符串编码为UTF-8,则可以使用
SELECT convert_from(my_bytea_col, 'UTF8')
FROM my_table
WHERE id = 1;
如果编码不同,则需要向LATIN1
提供适当的第二个参数(例如convert_from
)。
我可以说我认为将文本字符串存储为bytea
不是一个好主意吗?