Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以在PostgreSQL数据库中存储Word文档吗?_Sql_Postgresql - Fatal编程技术网

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

我可以在PostgreSQL数据库中存储Word文档吗?,sql,postgresql,Sql,Postgresql,我们在PostgreSQL数据库中维护数据,并以Word(TM)文件的形式保存相关文档 现在,在项目描述中有一句特别的话说,文档应该与数据一起存储在数据库中 我的问题:我可以在PostgreSQL数据库中存储Word文档吗 如果我必须先压缩它,甚至可能转换成.pdf,或者类似的技巧,那也没关系。但是,当然可以再次检索数据,并重新创建我们放入的文档。是的,您可以 bytea类型的列最多可以容纳1GB的二进制数据 考虑以下例子: CREATE TABLE tbl_document ( id

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

现在,在项目描述中有一句特别的话说,文档应该与数据一起存储在数据库中

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

如果我必须先压缩它,甚至可能转换成.pdf,或者类似的技巧,那也没关系。但是,当然可以再次检索数据,并重新创建我们放入的文档。

是的,您可以

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.”。