Où pg_lo_write stocke-t-il son contenu?
-
05-07-2019 - |
Question
Il existe une fonction dans notre système qui écrit un fichier dans un BLOB postgres. Elle est pg_lo_write
, notre système utilise PHP, ADODB et PostgreSQL.
Ce que j'aimerais savoir, c'est où ces données sont stockées, s'agit-il d'un fichier dans un répertoire postgres, dans une table?
Merci beaucoup!
Informations sur la réponse
Merci à Ben Fransen pour sa réponse, le BLOB est en fait stocké dans la table pg_largeobject
. J'utilise pgAdmin et la table est masquée, mais vous pouvez y accéder à l'aide d'une requête.
SELECT * FROM pg_largeobject WHERE LOID = 123456
La solution
Corrigez-moi si je me trompe, mais pour autant que je sache, lorsque vous stockez des fichiers dans une base de données, ils sont stockés sous forme de données binaires. La valeur binaire de votre fichier est stockée dans votre champ BLOB. Lorsque vous essayez d’obtenir ce fichier, la valeur binaire est ensuite reconstituée dans le fichier d’origine.
Autres conseils
Pour toute référence ultérieure dans les sections correspondantes du manuel PostgreSQL:
Chapitre 31. Objets de grande taille, 31.2. Fonctionnalités de mise en œuvre .