sql >> Databáze >  >> RDS >> PostgreSQL

Převeďte bajtový sloupec na OID při zachování hodnot

Sloupec typu Oid je pouze odkazem na binární obsah, který je ve skutečnosti uložen v systémovém pg_largeobject stůl. Pokud jde o úložiště, Oid je 4bajtové celé číslo. Na druhou stranu sloupec typu bytea je skutečný obsah.

Chcete-li přenést bajt do velkého objektu, měl by být vytvořen nový velký objekt pomocí souborového API pro velké objekty:lo_create() pro získání nového OID, poté lo_open() v režimu zápisu a poté zápis pomocí lo_write() nebo lowrite() a poté lo_close().

To se nedá rozumně udělat s pouhým obsazením.

K provedení této konverze byste v podstatě museli napsat ~10řádkový kus kódu v jazyce, který si vyberete (alespoň takový, který podporuje rozhraní API pro velké objekty, včetně plpgsql).



  1. Jak získám primární klíč (klíče) tabulky z Postgres přes plpgsql?

  2. 10 hlavních důvodů, proč používat Access a Excel společně

  3. Připojení JDBC MySQL pomocí Unix Socket

  4. Načítání dat ze dvou tabulek, které jsou spojeny s cizím klíčem v CakePhp