Onde é que pg_lo_write armazenar seu conteúdo?
-
05-07-2019 - |
Pergunta
Há uma função em nosso sistema que grava um arquivo a um BLOB postgres, a função é pg_lo_write
, o nosso sistema utiliza PHP, ADODB e PostgreSQL.
O que eu gostaria de saber é onde é armazenado esses dados, é um arquivo em um diretório postgres, em uma tabela?
Muito obrigado!
Resposta informações
Graças ao Ben Fransen para a resposta, o BLOB é de fato armazenado na tabela de pg_largeobject
. Estou usando pgAdmin ea tabela é escondido da vista, no entanto, ele pode ser acessado usando uma consulta.
SELECT * FROM pg_largeobject WHERE LOID = 123456
Solução
me corrija se eu estiver errado, mas, tanto quanto eu sei quando você está armazenando arquivos em um banco de dados que são armazenados como dados binários. O valor binário de seu arquivo é armazenado em seu campo BLOB. Quando você está tentando obter esse arquivo o valor binário é então reconstruído para o arquivo original.
Outras dicas
Para referência futura das secções relevantes do PostgreSQL manual:
Capítulo 31. Objetos grandes, 31,2. Implementação Características .