繁体   English   中英

将文件从Oracle BLOB导出到SQL FileTable-文件类型?

[英]Exporting files from Oracle BLOB to SQL FileTable - file types?

我正在尝试对包含HUGEBLOB文件的Oracle表进行数据转换/升级的ETL,并且该表中的列仅列出了文件名和MIME类型。 文件名并不总是(实际上在很多情况下)提供文件类型的扩展名,对于那些没有提供扩展名的文件,MIME类型为“ application / octet-stream”,我无法轻松确定原始文件类型是什么,并进行翻译后会为其指定适当的文件扩展名。 据我了解,“ application / octet-stream”只是一种基本的二进制文件类型。 但是,其中许多这样标记的实际上是doc文件,文本文件,pdf等,但由于某种原因而没有以适当的MIME类型上传到数据库中(这是一个编码很差的系统!)。 因此,我试图找出文件的二进制代码中是否可以确定/提取实际文件类型/扩展名的位置,如果可以,如何确定? 将其上传到SQL FileTable时将需要此文件扩展名,否则新系统将不知道它是哪种文件!

通常,可以通过查看文件的前几个字节来确定文件类型。 当然,如果您尝试自己实现文件格式,那么这会变得很乏味,因为可能的文件格式数量增加了。 最有可能的是,您希望利用已经支持大量文件格式的应用程序或框架来尝试找出至少绝大多数文件。

就个人而言,我可能会从Apache Tika之类的东西开始进行自动文件识别 这将需要编写一些Java代码,作为数据库中的存储过程或作为在数据库外部运行的独立程序。 如果您更喜欢使用其他语言,则可以找到该语言的类似API。 您还可以使用现有的独立应用程序来确定文件类型,但是几乎可以肯定,这需要将文件从数据库保存到操作系统,并且与自定义代码段相比,与ETL工具集成起来可能会更加困难。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM