我们将数据维护在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 )
);
Run Code Online (Sandbox Code Playgroud)
使用decode()函数从其base64表示形式存储文档文件:
INSERT INTO tbl_document ( id, info, doc ) VALUES ( 1, 'Personal Resume', decode( 'TG9yZW0gaXBzdW0u', 'base64')::bytea );
Run Code Online (Sandbox Code Playgroud)
使用encode()函数检索以其base64表示形式的文档:
SELECT info, encode( doc, 'base64' ) FROM tbl_document WHERE id = 1;
Run Code Online (Sandbox Code Playgroud)
使用pg_read_file()函数将二进制文件直接读入数据库:
INSERT INTO tbl_document ( id, info, doc ) VALUES ( 2, 'Daily Report', pg_read_file('report.doc')::bytea );
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
3062 次 |
| 最近记录: |