Một cách khác không yêu cầu hàm tùy chỉnh là sử dụng loread(lo_open(...)) kết hợp, như:
UPDATE user SET pkcs_as_bytea = loread(lo_open(pkcs12_as_oid, 262144), 1000000) WHERE thistable.pkcs12 IS NOT NULL
Có sự cố với mã này, loread hàm yêu cầu là tham số thứ hai số byte tối đa để đọc (1000000 tham số tôi đã sử dụng ở trên), vì vậy bạn nên sử dụng một số thực sự lớn ở đây nếu dữ liệu của bạn lớn. Nếu không, nội dung sẽ bị cắt bớt sau nhiều byte này và bạn sẽ không lấy lại được tất cả dữ liệu vào bytea trường.
Nếu bạn muốn chuyển đổi từ OID sang trường văn bản, bạn cũng nên sử dụng hàm chuyển đổi, như trong:
UPDATE user SET pkcs_as_text = convert_from(loread(lo_open(pkcs12_as_oid, 262144), 1000000), 'UTF8')
(262144 là một lá cờ cho chế độ mở, 40000 trong hexa, có nghĩa là "chỉ đọc mở")