使用PostgreSQL通过 sqlalchemy 查询二进制数据

2024-10-03 13:27:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的数据库,将附件存储为blob。在

CREATE TABLE public.attachment
(
  id integer NOT NULL,
  attachdata oid,
  CONSTRAINT attachment_pkey PRIMARY KEY (id)
)

-- Import a file
INSERT INTO attachment (id, attachdata) VALUES (1, lo_import('C:\\temp\blob_import.txt'))
-- Export back as file. 
SELECT lo_export(attachdata, 'C:\temp\blob_export_postgres.txt') FROM attachment WHERE id = 1

我可以直接使用psycopg2读回这个文件。在

^{pr2}$

当我使用sqlalchemy进行同样的尝试时,attachdata是一个由0组成的bytestring。 我用BLOB、LargeBinary和BINARY等类型测试了以下代码。 attachdata bytstring的大小似乎是OIDs值。在

^{3}$

我已经搜索了sqlalchemy文档和各种源代码,但是没有找到一个如何使用sqlalchemy导出二进制数据的解决方案。在


Tags: importtxtid数据库lo附件attachmentsqlalchemy