2010-12-10 7 views
7

지금 당장 Oracle 유틸리티 프로 시저 인 UTL_COMPRESS.LZ_COMPRESS()을 사용하여 일부 데이터를 압축합니다. 하지만 문제는 ZIP 호환되지 않는 GZIP 호환 형식을 사용하여 압축하는 것입니다. 따라서 Windows XP 기본 압축 풀기 유틸리티를 열 수 없습니다. 압축 된 폴더를 알 수 있습니다. 그리고 사용자는 압축을 풀기 위해 7Zip, Winzip 또는 Filzip 등과 같은 다른 유틸리티를 사용해야합니다.Oracle 저장 프로 시저를 사용하는 Zip

그래서 우리는 오라클에서 GZIP 데이터를 검색하고 Java를 사용하여 압축을 풀고 ZIP (Windows 유틸리티로 압축 해제 할 수있는)으로 다시 압축 할 계획을 세우게됩니다. 그것은 compress-in-gzip -> decompress -> compress-again-in-zip에 어리석은 소리가 난다.

이 모든 추가 계산을 피하기 위해 어떻게하면 원하는 형식으로 압축 할 수 있습니까?

답변

8

WinZip 형식을 지원하는 Java 패키지 java.util.zip이 있습니다. 또한 오라클에서는 원시 PL/SQL 프로그램에서 호출 할 수있는 형식으로 Java 클래스를 제공하는 Java 저장 프로 시저를 빌드 할 수 있습니다. Find out more.

그래서해야 할 일은 압축되지 않은 상태로 데이터가 포함 된 파일을 작성한 다음 JSP를 통해 압축하여 압축하는 것입니다. 직접 구현하지 않으려면 this article by Vadim Loevski을 확인하십시오. OS 파일 압축을위한 Java 저장 프로 시저가 포함되어 있습니다.


참고 :이 문맥에서 JSP는 데이터베이스에 포함 된 Java 프로그램 인 Java 저장 프로 시저를 의미합니다. 이것은 웹 기술인 Java Server Pages와 같지 않으며 따라서 JSP 약자에 대한보다 일반적인 사용법입니다. 주어진 혼란에 대해 사과드립니다.

+0

JSP는 모든 것이 데이터베이스에 있으므로 문제가되지 않습니다. 내 PL/SQL 절차는 한 테이블에서 압축되지 않은 데이터를 검색하고 다른 테이블에 압축 된 데이터를 쓰는 것입니다. 다음 단계에서는 모든 비 압축 데이터를 제거하여 스토리지 비용을 절감합니다. –

+0

나는 이것을 정확하게 생각하고 있었다. Java Stored Procedure에 관한 것이다. 그러나 이전에 한 가지 예를 들어 본 적이 없기 때문에 가능성에 대해 조금 걱정했습니다. 당신에게서 비슷한 것을 듣고 나면, 자신감이 생깁니다. 그리고 지금은 아주 간단한 예를 들고 나서는 이것이 이것이가는 길이라고 생각합니다. 귀중한 자원에 대한 귀하의 의견 및 링크에 대해 대단히 감사드립니다. +1 –

+0

이것은 귀하의 편집에 관한 것입니다. 내가 다시 착각하지 않는다면 "NB"는 "Nota Bene"을 의미합니까? ;) –

3

UTL_RAW.CAST_TO_RAW는 일종의 압축 알고리즘이 아닙니다. 그 아이디어가 어디서 떠오르는지 전혀 모르겠습니다. RAW (및 더 큰 사촌 BLOB)는 단순히 숫자, 날짜 또는 문자열이 아닌 데이터를 저장하는 것입니다. 문자 변환 문제가 발생할 수 있으므로 바이너리 데이터를 문자열에 저장하고 싶지는 않습니다.

압축을위한 올바른 PL/SQL 패키지는 표준 Lempel-Ziv 알고리즘을 사용하는 UTL_COMPRESS입니다.

http://download.oracle.com/docs/cd/E11882_01/appdev.112/e16760/u_compr.htm#BGBBCDDI

+0

죄송합니다. 잘못된 복사/붙여 넣기 문제였습니다.'UTL_COMPRESS' 그리고 당신이 제공 한 링크는 압축 된 데이터가 GZIP과 호환 될 것이라고 말합니다. 하지만 내가 원하는 것은 표준 ZIP 것입니다. 실수를 지적 해 주셔서 감사합니다. –

+0

다시 한번 말씀해 주셔서 감사합니다. +1 –

+0

해당 링크가 작동하지 않습니다. – zygimantus

3

as_zip (blog post)은 ZIP 아카이브를 조작하는 기본 PL/SQL 패키지입니다.
최대 4 기가 바이트의 파일을 처리합니다 (원래 ZIP 형식의 제한 사항처럼 보임).
패키지는 Anton Scheffer로 작성되었으며 MIT 라이센스가 있습니다.

관련 문제