<分区>
我们将数据保存在 PostgreSQL 数据库中,并以 Word (TM) 文件的形式保存相关文档。
现在项目描述中有一句特别的话指出文档应该“与数据一起存储在数据库中”。
我的问题:我可以将 Word 文档存储在 PostgreSQL 数据库中吗?
如果我必须先压缩它也没关系,甚至可能转换为 .pdf 或类似的技巧。但它应该有可能再次检索出数据,并重新创建我们放入的文档。
标签 sql postgresql
<分区>
我们将数据保存在 PostgreSQL 数据库中,并以 Word (TM) 文件的形式保存相关文档。
现在项目描述中有一句特别的话指出文档应该“与数据一起存储在数据库中”。
我的问题:我可以将 Word 文档存储在 PostgreSQL 数据库中吗?
如果我必须先压缩它也没关系,甚至可能转换为 .pdf 或类似的技巧。但它应该有可能再次检索出数据,并重新创建我们放入的文档。
最佳答案
是的,你可以!
bytea
类型的列最多可以容纳 1 GB 的二进制数据。
考虑以下示例:
CREATE TABLE tbl_document
(
id BIGINT,
info TEXT,
doc BYTEA,
CONSTRAINT pk_tbl_document PRIMARY KEY ( id )
);
使用 decode()
函数从其 base64
表示形式存储文档文件:
INSERT INTO tbl_document ( id, info, doc ) VALUES ( 1, 'Personal Resume', decode( 'TG9yZW0gaXBzdW0u', 'base64')::bytea );
使用 encode()
函数以其 base64
表示形式检索文档:
SELECT info, encode( doc, 'base64' ) FROM tbl_document WHERE id = 1;
使用pg_read_file()
函数将二进制文件直接读入数据库:
INSERT INTO tbl_document ( id, info, doc ) VALUES ( 2, 'Daily Report', pg_read_file('report.doc')::bytea );
希望对您有所帮助!
关于sql - 我可以将 Word 文档存储在 PostgreSQL 数据库中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39573219/