我在一个表中有BLOB数据(pdf文件附件(。对我们来说,编写Java/其他一些代码来读取BLOB进行验证的成本太高
有什么捷径/简单/便宜的方法来验证我的BLOB吗?有任何读取元数据和验证BLOB的命令吗?
我想检查BLOB对象是否已损坏
这不是您应该在数据库中执行的操作。BLOB是由适当的客户端软件(Adobe Reader、MS Word等(解释的二进制文件。就数据库而言,它是一个黑匣子。因此,您的应用程序应该在将文件上传到数据库之前对其进行验证。
但是,有一个变通办法。您可以在BLOB列上构建Oracle文本上下文索引。CONTEXT实际上是为文档的自由文本搜索而设计的,但索引是证明上传文件可读的一种方式。
CONTEXT索引的问题在于它们不是事务性的:通常会有一个后台作业在运行,为新文档编制索引,但为此,您可能希望在上传过程中调用CTX_DDL.SYNC_INDEX()
,以便向用户提供及时的反馈。了解更多信息。
我将重申,Text是一种变通方法,而且在数据库资源方面成本高昂。索引本身将消耗空间,并且索引过程需要时间和cpu周期。这是一项巨大的投资,除非你要处理数据库中的文档。