En ce moment, j'utilise la procédure d'utilité Oracle, Donc, nous finissons à avoir un plan de récupération des données GZIP à partir de Oracle, décompressez-le à l'aide de Java et de la compresser à Zip (quelque chose qui peut être décompressé par Windows Utility). Il semble ridicule à utl_compress.lz_compress () code>, pour compresser certaines données. Mais le problème est qu'il comprime la chose à l'aide de format compatible GZIP, qui n'est pas aussi compatible Zip malheureusement. Par conséquent, l'utilitaire de décompression native Windows XP ne peut pas l'ouvrir (vous savez que la caisse de dossier comprimé). Et l'utilisateur doit utiliser un autre utilitaire, comme
7zip code>,
winzip code> ou
filzip code> etc., afin de décompresser cela. P>
compress-in-gzip -> décompressez -> compresse-in-in-zip code>. P>.
3 Réponses :
Il y a un package Java Donc, ce que vous devez faire est d'écrire un fichier contenant les données de son état non compressé, puis de l'alimenter via un JSP pour la glisser. Si vous ne voulez pas écrire votre propre implémentation, consultez Cet article de Vadim Loevski . Il comprend une procédure stockée Java pour la zippation de fichiers OS. P>
Remarque: Dans ce contexte JSP désigne la procédure stockée Java, qui est un programme Java intégré à la base de données. Ce n'est pas la même chose que les pages de serveur Java, qui est une technologie Web, et donc l'utilisation la plus courante pour l'acronyme JSP. Je m'excuse pour toute confusion donnée. P> java.util.zip code> qui prend en charge le format WinZip. Et à Oracle, nous pouvons construire des procédures stockées Java qui présentent des classes Java dans une forme qui peut être appelée par des programmes PL / SQL natifs. En savoir plus . P>
JSP est hors de question, comme tout est là dans la base de données. Ma procédure PL / SQL récupère des données non compressées d'une table et rédige les données comprimées à une autre table. Dans l'étape suivante, c'est supprimer toutes ces données non compressées, pour économiser des coûts de stockage.
Je pensais exactement cela, je veux dire sur la procédure stockée Java. Mais je n'ai jamais fait un seul exemple auparavant, cela m'a rendu un peu inquiet de la possibilité. Après avoir entendu la chose la plus similaire de votre part, cela me donne confiance. Et maintenant, après avoir monté un exemple très simple, je pense que c'est la voie à suivre. Merci beaucoup pour votre contribution et pour les liens avec des ressources précieuses. +1
Ceci est en ce qui concerne votre édition. "NB" signifie "nota bene", si je ne me trompe pas encore? ;)
@ADELANSARI - Désolé pour un autre initialisme déroutant. Je suppose que je ne peux tout simplement pas m'en empêcher :(
utl_raw.cast_to_raw n'est pas une sorte d'algorithme de compression. Aucune idée où vous avez monté l'idée que c'était. RAW (et son plus grand cousin blob) consistent simplement à stocker des données qui ne sont pas un nombre, la date ou une chaîne. Vous ne voulez pas stocker de données binaires dans les chaînes car il y a une chance de problèmes de conversion de caractère. P>
Le bon package PL / SQL correct pour la compression est UTL_Compress qui utilise l'algorithme Standard Lempel-ZIV. P>
http://download.oracle. COM / DOCS / CD / E11882_01 / AppDev.112 / E16760 / U_COMPR.HTM # BGBBCDDI P>
Désolé, c'était une mauvaise émission de copie / pâte. Mis à jour la question. utl_compress code> et le lien que vous avez fourni indique que les données compressées seraient compatibles Gzip. Mais ce que je veux, c'est une chose zip standard. Merci d'avoir souligné l'erreur.
Ce lien est mort.
as_zip ( Blog post ) est un package PL / SQL natif pour manipuler les archives zip.
Il gère des fichiers allant jusqu'à 4 gigaoctets (ressemble à la limitation du format zip d'origine).
Le package est écrit par Anton Scheffer et est sous licence de MIT. P>