pgAdmin III: как просмотреть большой двоичный объект?

Я понимаю, что PostgreSQL записывает содержимое BLOB в отдельную таблицу, но есть ли способ просмотреть содержимое BLOB простым и удобным способом из pgAdmin?


person Haroldo_OK    schedule 14.02.2013    source источник
comment
Какой тип данных является столбцом BLOB-объектов? bytea или oid?   -  person a_horse_with_no_name    schedule 26.04.2013


Ответы (2)


Я не уверен, что вы подразумеваете под "простым и удобным", но лучшее, что вы можете сделать, это lo_read(...)

Это представляет lob как bytea.

Это легко и удобно в смысле получения данных, но pgAdmin не будет преобразовывать экранированную строку обратно в исходный двоичный файл для вас, поэтому вам остается смотреть на текстовое представление двоичного файла, так что это не «легко и удобный», если вы хотите показать изображение, содержащееся в лобовом объекте, когда оно находится в формате png или что-то в этом роде.

person Chris Travers    schedule 26.04.2013
comment
Да, это то, что я тоже в итоге использовал... Я просто надеялся, что есть более удобный способ. Для справки, вот что я в итоге использовал: select dType, id, loread(lo_open(docxml::::int, 131072), 999999999) из XmlPadraoNFe - person Haroldo_OK; 09.05.2013

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

куда

  1. blobdata — это столбец bytea (blob)
  2. «таблица» — это таблица, содержащая большие двоичные данные столбца.
person Stupidfrog    schedule 25.05.2015
comment
Что было нужно для as o where o.blobdata != ' - person Janac Meena; 10.01.2019
comment
@JanacMeena, вероятно, encode не работает с пустыми значениями. ТИЙ :) - person yair; 06.08.2019