如何在Oracle中验证BLOB对象

时间:2018-11-20 06:22:25

标签: oracle validation blob

我在一个表中有BLOB数据(pdf文件附件)。 对我们来说,编写Java /其他代码以读取BLOB进行验证太昂贵了。
是否有任何捷径/简单/较便宜的方式来验证我的BLOB?是否有任何命令可以读取元数据并验证BLOB?

1 个答案:

答案 0 :(得分:1)

  

我想检查BLOB对象是否已损坏

这不是您应该在数据库中执行的操作。 BLOB是一个二进制文件,由相应的客户端软件(Adobe Reader,MS Word等)解释。就数据库而言,这是一个黑匣子。因此,您的应用程序应该在将文件上传到数据库之前对其进行验证。

但是,有一种解决方法。您可以在BLOB列上构建Oracle Text CONTEXT索引。 CONTEXT实际上是为文档的自由文本搜索而设计的,但建立索引是一种证明上传的文件可读的方法。

带有CONTEXT索引的障碍是它们不是事务性的:通常有一个后台作业正在运行,它为新文档建立索引,但是为此,您可能希望调用CTX_DDL.SYNC_INDEX()作为上载的一部分来向用户展示及时反馈。 https://vaadin.com/docs/v10/flow/migration/1-migrating-v8-v10.html

我将重申Text是一种解决方法,并且就数据库资源而言很昂贵。索引本身将占用空间,并且索引过程需要时间和cpu周期。除非您要在数据库中使用文档,否则这是一笔巨大的投资。