PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Convertir une colonne bytea en OID tout en conservant les valeurs

Une colonne de type Oid est juste une référence au contenu binaire qui est réellement stocké dans le pg_largeobject du système table. En termes de stockage, un Oid est un entier de 4 octets. En revanche, une colonne de type bytea est le contenu réel.

Pour transférer un bytea dans un gros objet, un nouveau gros objet doit être créé avec l'API de type fichier des gros objets :lo_create() pour obtenir un nouvel OID, puis lo_open() en mode écriture, puis écrit avec lo_write() ou lowrite(), puis lo_close().

Cela ne peut raisonnablement pas être fait avec juste un plâtre.

Fondamentalement, vous auriez besoin d'écrire un morceau de code d'environ 10 lignes dans le langage de votre choix (au moins un qui prend en charge l'API grand objet, y compris plpgsql) pour effectuer cette conversion.