PostgreSQL psql命令行显示bytea列

时间:2014-10-30 21:01:13

标签: postgresql psql

我有一个图像数据库。使用包含两个bytea列的图像表。我想查询表并查看这些列,以便能够查看这些条目是否存储图像。因为它们是可以为空的列。

目前,当我使用psql命令行查询数据库时,我的整个命令行界面显示空白,试图显示bytea。

我已经用Google搜索了一段时间,无法找到合适的方式来展示桌子。理想情况下会显示第一个“x”字符。

我可以通过上传一张小小的图片来确认bytea的打印是否足够小。

这就是我所看到的:SELECT * FROM Image;

my view when querying this table

3 个答案:

答案 0 :(得分:7)

您可以使用encode功能:

select encode(bytea_column, 'hex')
from image;

如果您只想查看第一个字节,只需使用left()函数:

select left(encode(bytea_column, 'hex'), 40)
from image;

手册中的更多细节:
http://www.postgresql.org/docs/current/static/functions-binarystring.html

答案 1 :(得分:3)

如果您不想自己解释二进制数据,为什么不这样做:

select length(img1), length(img2) from Image

select img1 is null, img2 is null from Image

答案 2 :(得分:2)

您可以使用以下命令切换展开的格式化模式

\x