我可以在PostgreSQL数据库中存储Word文档吗?
我们在PostgreSQL数据库中维护数据,并以Word(TM)文件的形式保存相关文档 现在,在项目描述中有一句特别的话说,文档应该与数据一起存储在数据库中 我的问题:我可以在PostgreSQL数据库中存储Word文档吗 如果我必须先压缩它,甚至可能转换成.pdf,或者类似的技巧,那也没关系。但是,当然可以再次检索数据,并重新创建我们放入的文档。是的,您可以我可以在PostgreSQL数据库中存储Word文档吗?,sql,postgresql,Sql,Postgresql,我们在PostgreSQL数据库中维护数据,并以Word(TM)文件的形式保存相关文档 现在,在项目描述中有一句特别的话说,文档应该与数据一起存储在数据库中 我的问题:我可以在PostgreSQL数据库中存储Word文档吗 如果我必须先压缩它,甚至可能转换成.pdf,或者类似的技巧,那也没关系。但是,当然可以再次检索数据,并重新创建我们放入的文档。是的,您可以 bytea类型的列最多可以容纳1GB的二进制数据 考虑以下例子: CREATE TABLE tbl_document ( id
bytea
类型的列最多可以容纳1GB的二进制数据
考虑以下例子:
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 );
SELECT info, encode( doc, 'base64' ) FROM tbl_document WHERE id = 1;
使用encode()
函数以base64
表示形式检索文档:
INSERT INTO tbl_document ( id, info, doc ) VALUES ( 1, 'Personal Resume', decode( 'TG9yZW0gaXBzdW0u', 'base64')::bytea );
SELECT info, encode( doc, 'base64' ) FROM tbl_document WHERE id = 1;
使用pg\u read\u file()
函数将二进制文件直接读取到数据库中:
INSERT INTO tbl_document ( id, info, doc ) VALUES ( 2, 'Daily Report', pg_read_file('report.doc')::bytea );
希望有帮助 您可以使用二进制数据类型来存储它:。当Word文档存储在数据库中时,无法在Word文档中搜索文本。您可以在PostgreSQL中存储任何需要的内容。另一方面,这是否是一个好主意是一个完全不同的问题。我可以问一个问题吗。“TG9yZW0gaXBzdW0u”是什么意思?@Mr.Aw在base64编码中表示“Lorem ipsum.”。