2014-12-08 3 views
1

HUGEBLOB 파일이 들어있는 Oracle 테이블의 데이터 변환/업그레이드를 위해 ETL을 수행하려고하고 있으며 해당 테이블의 열에는 파일 이름과 MIME 유형 만 나열됩니다. 파일 이름이 항상 (실제로는 많은 경우) 파일 유형의 확장자를 제공하지 않으며, MIME 유형이 "application/octet-stream"인 파일 유형의 경우에는 쉽게 결정할 수 없습니다 원본 파일 형식이 무엇인지 확인하고 변환하면 적절한 파일 확장명이 부여됩니다. "application/octet-stream"은 기본적인 바이너리 파일 유형이라는 것을 이해합니다. 그러나 실제로는 doc 파일, 텍스트 파일, pdf 등의 태그가 붙은 태그가 많지만 어떤 이유에서 건 적절한 MIME 유형으로 업로드되지 않았습니다. 그래서, 실제 파일 형식/확장명을 결정/추출 할 수있는 파일의 이진 코드에 어딘가가 있는지 파악하려고합니다. 그렇다면 어떻게해야합니까? 이 파일 유형 확장자는 SQL FileTable에 업로드 될 때 필요합니다. 그렇지 않으면 새 시스템은 파일 유형도 알 수 없습니다!Oracle BLOB에서 SQL FileTable - 파일 유형으로 파일 내보내기?

답변

0

일반적으로 파일의 처음 몇 바이트를보고 파일 유형을 파악할 수 있습니다. 물론, 직접 구현하려고한다면 가능한 파일 형식 수가 늘어날수록 지루해집니다. 대부분의 경우, 이미 많은 수의 파일 형식을 지원하는 응용 프로그램이나 프레임 워크를 활용하여 대다수의 파일을 파악하려고합니다.

개인적으로는 아마도 Apache Tika to do automated file recognition과 같은 것으로 시작할 것입니다. 데이터베이스의 저장 프로 시저 또는 데이터베이스 외부에서 실행되는 독립 실행 형 프로그램으로 Java 코드를 작성해야합니다. 다른 언어를 사용하는 것이 더 편한 경우 해당 언어에 대한 유사한 API를 찾을 수 있습니다. 기존 standalone application to determine the file type을 사용할 수도 있지만 데이터베이스에서 운영 체제로 파일을 저장해야 할 필요가 거의 있으며 사용자 지정 작성 코드보다 ETL 도구와 통합하는 것이 더 어려울 수 있습니다.

+0

내가 정확히 필요한 것 같습니다, 저스틴. 나는 그걸 가지고 놀아야 만 내가 알아낼 수있는 것을보아야 할 것이다. 그러나 그것이 효과가있는 것처럼 보인다. 정말 고맙습니다!! – kharvey