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")