我知道PostgreSQL会将BLOB内容写入到一个单独的表中,但是有没有办法从pgAdmin内部方便地查看BLOB内容呢?
我知道PostgreSQL会将BLOB内容写入到一个单独的表中,但是有没有办法从pgAdmin内部方便地查看BLOB内容呢?
SELECT encode(blobdata::bytea, 'escape') FROM table as o where o.blobdata != ''
其中
as o where o.blobdata != '
的需求是什么? - Janac Meenaencode
失败。祝你好运 :) - yair如果我们需要通过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;
我不确定你所说的“易于使用和方便”是什么意思,但最好的方法是使用lo_read(...)
这将把lob
表示为bytea
。
从获取数据的角度来看,这很容易和方便,但是pgAdmin不会将转义字符串转换回原始二进制数据,因此您只能查看二进制数据的文本表示形式,如果您想要显示包含在lob中的png格式或其他任何格式的图像,则并不“易于使用和方便”。
lo_get()
来完成同样的事情:select dType, id, lo_get(docxml::int) from XmlPadraoNFe
。 - Haroldo_OK
bytea
还是oid
? - user330315