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

标签 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/

相关文章:

mysql - 如何在给定日期范围内的表中插入日期

sql - 防止展平 View 后重新排序

sql - 如何获取执行的 select 语句中的总行数?

sql - 错误 SQL70001 : This statement is not recognized in this context

python - PostGres 为数据帧返回 MemoryError

python - Django Timezone Awareness - 以 UTC 格式存储的数据

sql - 嵌套的 SQL 查询搜索错误的表 (postgreSQL)

PostgreSQL 可用性和合并

sql - 如何在单个查询中使用 count ,'like' 和 group by?

sql - 将纪元转换为时间戳时获取不正确的日期