首页 >> 学识问答 >

ole 对象型 数据库存储用途详解

2026-11-09 23:56:12 来源:网易 用户:谭韵凡 

ole 对象型一般用于在数据库里面存储非结构化的二进制文件,也就是把外部文档图片音频视频这类文件,作为 ole 对象嵌入到数据表字段当中,最典型就是 access 数据库里面的 ole 对象字段,它可以保存由 ole 协议支持的各类复合文件,核心特点是文件本身的数据直接存进数据库内部,不是只保存一个外部文件路径,双击这个 ole 对象的时候,还可以调用对应的原生程序打开编辑,它适合小体积复合文件存储,不适合大体积视频大批量文件,因为会让数据库体积快速膨胀,查询性能下降,还容易出现数据库损坏,很多新手会混淆 ole 对象型和附件类型,ole 对象型是早期传统方案,附件类型是 access 后期推出的优化版本,同样可以存文件,但是管理更合理。

底层原理

ole 全称是对象链接与嵌入,ole 对象型字段按照 ole 规范,把外部应用生成的文件以二进制流的形式封装保存进数据库字段,分为两种模式,第一种是嵌入模式,文件完整数据存入数据库,数据库独立可用,就算外部原文件删除,数据库里面的 ole 对象依旧存在,第二种是链接模式,数据库只保存外部文件的引用指针,文件本体还留在电脑磁盘上,如果原文件移动或者删除,ole 对象就会失效打不开,日常 access 使用最多的是嵌入模式。

这种设计的初衷,是让数据库可以跨应用调用其他软件的内容,比如 word 文档 excel 表格绘图文件,不需要单独在外部文件夹管理,实现数据和文档集中存放。

可存储文件类型清单

办公文档类 word 文档 excel 表格 powerpoint 演示文稿

图像类 bmp jpg png gif 图片

音频类 wav mp3 音频文件

视频类 avi wmv 等视频文件

绘图类 画图文件 cad 绘图对象

其他支持 ole 协议的复合文档

适用与不适用场景对比表格

项目ole 对象型
适合文件体积偏小的文档图片,需要内嵌在数据库,需要双击调用原程序编辑
不适合文件大体积高清视频,大批量文件,需要频繁查询导出的业务数据
优点集中存储,支持 ole 调用原生程序打开编辑
缺点数据库快速变大,查询变慢,易损坏,跨电脑兼容性差

操作使用步骤

1 打开 access 数据表,设计视图,新增字段,数据类型选择 ole 对象。

2 打开数据表的数据表视图,定位到目标记录的 ole 对象字段。

3 右键该单元格,选择插入对象,选择由文件创建,浏览选中需要存入的文件。

4 按需选择是否勾选链接,如果不勾选就是嵌入,文件完整存入 ole 对象型字段,勾选链接就是只保存外部引用。

5 保存数据表,后续双击 ole 对象,系统会调用对应的软件打开这个文件。

重要注意事项

第一 ole 对象型会让数据库文件体积暴涨,大量图片视频存进去之后,access 打开卡顿,压缩修复耗时变长,严重会数据库损坏。

第二 跨电脑使用的时候,如果是链接模式,原文件路径变化 ole 对象失效,嵌入模式虽然不受外部文件影响,但是文件体积问题依旧存在。

第三 新版 access 已经推荐使用附件类型字段替代传统 ole 对象型,附件字段对文件管理优化更好,支持多文件,压缩表现优于 ole 对象型。

第四 ole 对象型只支持符合 ole 规范的应用文件,普通纯文本 txt 虽然也可以嵌入,但是一般不会选择 ole 对象型存储,直接用文本字段更合适。

ole 对象型主要用来在数据库内嵌入 ole 协议支持的二进制复合文件,常见是 word excel 图片音频视频,支持调用原生程序打开编辑,适合小文件集中存储,缺点是数据库膨胀性能下降,大批量大文件不推荐,现在很多场景已经逐步被附件字段替代,使用的时候区分嵌入和链接两种模式,理解二者失效风险。

【常见问题】

问题 1 ole 对象型可以存储 txt 纯文本文件吗

回答 1 ole 对象型理论上可以存储 txt 纯文本文件,但是一般不推荐使用 ole 对象型存放 txt,纯文本直接使用文本字段更高效,ole 对象型适合复合二进制文档。

问题 2 ole 对象型和附件字段存文件有什么区别

回答 1 ole 对象型是早期 ole 嵌入方案,会造成数据库体积大幅增大,附件字段是 access 优化方案,ole 对象型存储文件性能更差,大批量文件优先附件字段而不是 ole 对象型。

问题 3 ole 对象型存图片之后原文件删除还能打开吗

回答 1 如果插入的时候选择嵌入模式,ole 对象型已经把图片完整存入数据库,原文件删除之后 ole 对象型依旧可以打开,如果是链接模式,原文件删除 ole 对象型就会失效。

问题 4 ole 对象型适合存大容量视频吗

回答 1 ole 对象型不适合存大容量视频,ole 对象型存储大视频会让数据库体积急剧变大,查询打开卡顿,还容易数据库损坏,不推荐 ole 对象型保存大体积视频。

【免责申明】

本内容仅为数据库技术科普,不同版本 access 对 ole 对象型支持存在差异,实际业务开发请结合数据库性能需求评估,不构成系统设计强制方案建议。

 
最新文章