16

我知道 PostgreSQL 将 BLOB 内容写入单独的表,但是有没有办法从 pgAdmin 内部以简单方便的方式查看 blob 内容?

4

3 回答 3

38
SELECT encode(blobdata::bytea, 'escape') FROM table as o where o.blobdata != ''

在哪里

  1. blobdata 是 bytea 列 (blob)
  2. "table" 是包含 blobdata 列的表
于 2015-05-25T07:02:40.810 回答
0

我不确定你所说的“简单方便”是什么意思,但你能做的最好的就是lo_read(...)

这将lob作为bytea.

从获取数据的意义上说,这既简单又方便,但是您 pgAdmin 不会为您将转义字符串转换回原始二进制文件,因此您只能查看二进制文件的文本表示,因此它不是“简单且方便”,如果您想在 lob 中显示 png 格式或其他格式的图像。

于 2013-04-26T14:52:54.367 回答
0

如果我们需要通过 SQL 客户端(如 pgAdmin)对二进制列进行 SQL 操作,最好使用 base64 编码,如下所示

获取 base64 格式的二进制数据

select id, encode(blob_column::bytea, 'base64') as blob_column from blob_table where id=1;

通过提供 base64 格式的数据来更新二进制数据

update blob_table set blob_column = decode('J0u0v1h4CulinCwUvk4dhw==', 'base64') where id=1;
于 2022-01-13T07:45:09.553 回答