PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Konwertuj kolumnę bajtową na OID, zachowując wartości

Kolumna typu Oid jest tylko odniesieniem do zawartości binarnej, która jest faktycznie przechowywana w pg_largeobject systemu stół. Jeśli chodzi o przechowywanie, Oid jest 4-bajtową liczbą całkowitą. Z drugiej strony kolumna typu bytea jest rzeczywista zawartość.

Aby przesłać bajt do dużego obiektu, należy utworzyć nowy duży obiekt za pomocą podobnego do pliku API dużych obiektów:lo_create(), aby uzyskać nowy OID, następnie lo_open() w trybie zapisu, a następnie pisze za pomocą lo_write() lub lowrite(), a następnie lo_close().

Nie można tego rozsądnie zrobić za pomocą tylko obsady.

Zasadniczo, aby wykonać tę konwersję, musiałbyś napisać około 10 wierszy kodu w wybranym języku (przynajmniej takim, który obsługuje API dużych obiektów, w tym plpgsql).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Problem z tworzeniem Postgres RDS w szablonie Cloudformation

  2. Sequelize.js:Zapytanie o brak w tablicy ($ne dla elementów w tablicy)

  3. Grupuj powiązane rekordy, ale wybierz określone pola tylko z pierwszego rekordu

  4. BŁĄD:musi być członkiem roli Podczas tworzenia schematu w PostgreSQL

  5. Jak używać uuid z typem indeksu postgresql gist?