PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

PostgreSQL:dari OID ke Bytea

Cara lain yang tidak memerlukan fungsi khusus adalah dengan menggunakan loread(lo_open(...)) kombinasi, seperti:

UPDATE user SET pkcs_as_bytea = loread(lo_open(pkcs12_as_oid, 262144), 1000000) WHERE thistable.pkcs12 IS NOT NULL

Ada masalah dengan kode ini, loread fungsi membutuhkan sebagai parameter kedua jumlah byte maksimum untuk dibaca (1000000 parameter yang saya gunakan di atas), jadi Anda harus menggunakan angka yang sangat besar di sini jika data Anda besar. Jika tidak, konten akan dipangkas setelah beberapa byte ini, dan Anda tidak akan mendapatkan semua data kembali ke bytea lapangan.

Jika Anda ingin mengonversi dari OID ke bidang teks, Anda juga harus menggunakan fungsi konversi, seperti pada:

UPDATE user SET pkcs_as_text = convert_from(loread(lo_open(pkcs12_as_oid, 262144), 1000000), 'UTF8')

(262144 adalah tanda untuk mode terbuka, 40000 dalam hexa, yang berarti "buka hanya-baca")



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:Memeriksa BARU dan LAMA dalam fungsi untuk pemicu

  2. PostgreSQL 12:Kunci Asing dan Tabel yang Dipartisi

  3. Jumlah kumulatif nilai menurut bulan, mengisi bulan yang hilang

  4. Tingkatkan kinerja kueri PostgreSQL setelah bergabung dengan 100 juta data

  5. perbarui kueri dengan bergabung di dua tabel