我可以将Word文档存储在PostgreSQL数据库中吗?

Mar*_*tin 3 sql postgresql

我们将数据维护在PostgreSQL数据库中,并以Word(TM)文件的形式保留相关文档。

现在,在项目描述中有一个特殊的句子指出,文档应“与数据一起存储在数据库中”。

我的问题:我可以将Word文档存储在PostgreSQL数据库中吗?

如果我必须先将其压缩,甚至可以转换为.pdf或类似的技巧,也可以。但是应该可以再次检索数据,然后重新创建我们放入的文档...

/马丁

Lac*_*bus 6

是的你可以!

类型的列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)

希望能帮助到你!

  • @Mr.Aw 的意思是“Lorem ipsum”。在base64编码中。 (3认同)