Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Java Archive / 25 сообщений из 47, страница 1 из 2
10.08.2010, 16:47
    #36784450
alient
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
Как сделать архивирование нужного файла в оракле?
Может ктото встречал нужный ява код для этого ?? если да то поделитесь!
...
Рейтинг: 0 / 0
10.08.2010, 18:10
    #36784669
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
alient,

Именно архивирование или сжатие? utl_compress.
...
Рейтинг: 0 / 0
10.08.2010, 18:24
    #36784704
alient
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
Создаем класс add

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
import java.awt.*;
import java.applet.*;
import java.lang.*;
public class add {
public static void archiv(String zipFileName, String fileName) throws IOException {
       File zipFile = new File(zipFileName);
       File tmpFile = File.createTempFile("zip", "tmp");
       File newFile = new File(fileName);
       byte[] buffer = new byte[ 8192 ];
       int readed;
       ZipOutputStream zipOutputStream = new ZipOutputStream(
           new BufferedOutputStream(
               new FileOutputStream(tmpFile)));
       try {
           if (zipFile.exists()) {
               ZipInputStream zipInputStream = new ZipInputStream(
                   new BufferedInputStream(
                       new FileInputStream(zipFile)));
               try {
                   ZipEntry entry;
                   while ((entry = zipInputStream.getNextEntry()) != null){
                       if (entry.getName().equals(newFile.getName())) {
                           continue;
                       }
                       ZipEntry newEntry = new ZipEntry(entry);
                       zipOutputStream.putNextEntry(newEntry);
                       while ((readed = zipInputStream.read(buffer)) >  0 ) {
                           zipOutputStream.write(buffer,  0 , readed);
                       }
                       zipOutputStream.closeEntry();
                   }
               }
               finally {
                   zipInputStream.close();
               }
           }
           InputStream fileInputStream = new BufferedInputStream(
               new FileInputStream(newFile));
           try {
               /*System.out.printf("Adding %s\n", fileName);*/
               ZipEntry newEntry = new ZipEntry(newFile.getName());
               newEntry.setSize(newFile.length());
               newEntry.setTime(newFile.lastModified());
               zipOutputStream.putNextEntry(newEntry);
               while ((readed = fileInputStream.read(buffer)) >  0 ) {
                   zipOutputStream.write(buffer,  0 , readed);
               }
               zipOutputStream.closeEntry();
           }
           finally {
               fileInputStream.close();
           }
       }
       finally {
           zipOutputStream.close();
       }
       if (zipFile.exists()) {
           zipFile.delete();
       }
       tmpFile.renameTo(zipFile);
   }
}

Терь создаем процедуру

Код: plaintext
1.
2.
3.
4.
PROCEDURE ADD1 (zipFileName  IN  VARCHAR2,
               fileName    IN  VARCHAR2) 
as language java 
name 'add.archiv(java.lang.String, java.lang.String)';

И теперь вызов на сервере

exec add1('c:\test\input\d09_03.zip','c:\test\input\d09_03.dbf'); делает нам архив ну разархиривоние примерно в таком же духе - ява опять таки рулит!
...
Рейтинг: 0 / 0
10.08.2010, 18:53
    #36784763
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
alientява опять таки рулит!А смысл архивировать базой файлы операционной системы? zip слишком мало ресурсов жрет или не требует программирования?
...
Рейтинг: 0 / 0
11.08.2010, 08:12
    #36785166
d.nemolchev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
Вдруг кому пригодится...
multifile zip

Java source
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
create or replace and compile java source named js_zip as
-- author: d.nemolchev  09 . 2006 
 import  java.io.*;
 import  oracle.sql.*;
 import  java.util.zip.*;
 import  java.util.*;

 public   class  J_Zip
{
   static  ArrayList Names_ =  new  ArrayList();
   static  ArrayList Contents_ =  new  ArrayList();
   static   byte [] ZipContent_;
  
   public   static   void  Clear()
  {
    Names_.clear();
    Contents_.clear();
  }
  
   public   static   void  SetZipContent(oracle.sql.BLOB zip)
  {
     try {
      ZipContent_ = zip.getBytes( 1 , ( int )zip.length());
      Clear();
    } catch (java.sql.SQLException e){
      System.out.println(e);
    }
  }
  
   public   static   void  GetZipContent(oracle.sql.BLOB[] zip)
  {
     try {
      zip[ 0 ].putBytes( 1 , ZipContent_);
    } catch (java.sql.SQLException e){
      System.out.println(e);
    }
  }
  
   public   static   void  AddEntry(String name, oracle.sql.BLOB entry)
  {
     try {
      Names_.add((Object)name);
      Contents_.add((Object)entry.getBytes( 1 , ( int )entry.length()));
    } catch (java.sql.SQLException e){
      System.out.println(e);
    }
  }
  
   public   static   void  DelEntry(String name)
  {
     for ( int  i =  0 ; i < Names_.size(); i++)
    {
       if (name.compareTo((String)Names_.get(i)) !=  0 )
         continue ;
      Names_.remove(i);
      Contents_.remove(i);
       break ;
    }
  }
  
   public   static   int  EntryCount()
  {
     return  Names_.size();
  }
  
   public   static   void  UnPack( int  WithContent)
  {
     try {
      ZipInputStream in =  new  ZipInputStream( new  ByteArrayInputStream(ZipContent_));
      ZipEntry ze;
       while ((ze = in.getNextEntry()) !=  null )
      {
        Names_.add((Object)ze.getName());
         if (WithContent !=  0 )
        {
          ByteArrayOutputStream out =  new  ByteArrayOutputStream();
           byte [] tmp =  new   byte [ 1024 ];
           int  n;
           while ((n = in.read(tmp)) >=  0 )
            out.write(tmp,  0 , n);
          Contents_.add((Object)out.toByteArray());
        }
      }
    } catch (java.io.IOException e){
      System.out.println(e);
    }
  }
  
   public   static   void  GetEntry(String name, oracle.sql.BLOB[] entry)
  {
     try {
       for ( int  i =  0 ; i < Names_.size(); i++)
      {
         if (name.compareTo((String)Names_.get(i)) !=  0 )
           continue ;
        entry[ 0 ].trim( 0 );
        entry[ 0 ].putBytes( 1 , ( byte [])Contents_.get(i));
         break ;
      }
    } catch (java.sql.SQLException e){
      System.out.println(e);
    }
  }
  
   public   static   void  GetEntry( int  num, oracle.sql.BLOB[] entry)
  {
     try {
      entry[ 0 ].trim( 0 );
      entry[ 0 ].putBytes( 1 , ( byte [])Contents_.get(num));
    } catch (java.sql.SQLException e){
      System.out.println(e);
    }
  }
  
   public   static  String GetName( int  num)
  {
     return  (String)Names_.get(num);
  }
  
   public   static   void  GetNames(oracle.sql.CLOB[] out)
  {
    String str =  new  String();
     try {
       for ( int  i =  0 ; i < Names_.size(); i++)
        str = str + (String)Names_.get(i) + "\n";
      out[ 0 ].trim( 0 );
      out[ 0 ].putString( 1 , str);
      System.out.println(Names_.size());
    } catch (java.sql.SQLException e){
      System.out.println(e);
    }
  }
  
   public   static   void  GetNames(oracle.sql.BLOB zip, oracle.sql.CLOB[] out)
  {
     try {
      ZipInputStream in =  new  ZipInputStream(zip.getBinaryStream());
      ZipEntry ze;
       while ((ze = in.getNextEntry()) !=  null )
        out[ 0 ].putString(out[ 0 ].length() +  1 ,ze.getName() + "\n");
    } catch (java.sql.SQLException e){
      System.out.println(e);
    } catch (java.io.IOException e){
      System.out.println(e);
    }
  }
  
   public   static   void  Pack()
  {
     try {
      ByteArrayOutputStream out =  new  ByteArrayOutputStream();
      ZipOutputStream zip =  new  ZipOutputStream(out);
       for ( int  i =  0 ; i < Names_.size(); i++)
      {
        zip.putNextEntry( new  ZipEntry((String)Names_.get(i)));
        zip.write(( byte [])Contents_.get(i),  0 , (( byte [])Contents_.get(i)).length);
        zip.closeEntry();
      }
      zip.close();
      ZipContent_ = out.toByteArray();
    } catch (java.io.IOException e){
      System.out.println(e);
    }
  }
  
   public   static   void  UnPackEntry(oracle.sql.BLOB in, java.lang.String name, oracle.sql.BLOB[] out)
  {
     try {
      ZipInputStream zip_in =  new  ZipInputStream(in.getBinaryStream());
      ZipEntry ze = zip_in.getNextEntry();
       boolean  f_exit = false;
       while (ze !=  null  && !f_exit)
      {
         if (name.compareTo(ze.getName()) ==  0 )
        {
          OutputStream outBuffer = out[ 0 ].getBinaryOutputStream();
           byte [] tmpBuffer =  new   byte [ 1024 ];
           int  n;
           while  ((n = zip_in.read(tmpBuffer)) >=  0 )
            outBuffer.write(tmpBuffer,  0 , n);
          outBuffer.close();
          f_exit = true;
        }
        ze = zip_in.getNextEntry();
      }
    }
     catch  (java.sql.SQLException e)
      {System.out.println(e);}
     catch  (java.io.IOException e)
      {System.out.println(e);}
  }
  
}


Package
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
CREATE OR REPLACE Package mfz Is

  /*author: d.nemolchev 09.2006*/

  Procedure Clear;

  Procedure SetZipContent(iContent Blob);

  Procedure GetZipContent(oContent In Out Nocopy Blob);

  Procedure AddEntry
  (
    iName    Varchar2,
    iContent Blob
  );

  Procedure DelEntry(iName Varchar2);

  Function EntryCount Return Number;

  Procedure UnPack(iNamesOnly Number);

  Procedure GetEntry
  (
    iName    Varchar2,
    oContent In Out Blob
  );

  Procedure GetEntry
  (
    iNum     Number,
    oContent In Out Blob
  );

  Function GetName(iNum Number) Return Varchar2;

  Procedure GetNames(oNames In Out Nocopy Clob);

  Procedure GetNames
  (
    iZip   Blob,
    oNames In Out Nocopy Clob
  );

  Procedure Pack;

  Procedure UnPackEntry
  (
    iZip     Blob,
    iName    Varchar2,
    oContent In Out Nocopy Blob
  );

End; -- mfz


Package body
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
CREATE OR REPLACE Package Body mfz Is

  /*author: d.nemolchev 09.2006*/

  Procedure Clear As
    Language Java Name 'J_Zip.Clear()';

  Procedure SetZipContent(iContent Blob) As
    Language Java Name 'J_Zip.SetZipContent(oracle.sql.BLOB)';

  Procedure GetZipContent(oContent In Out Nocopy Blob) As
    Language Java Name 'J_Zip.GetZipContent(oracle.sql.BLOB[])';

  Procedure AddEntry
  (
    iName    Varchar2,
    iContent Blob
  ) As
    Language Java Name 'J_Zip.AddEntry(java.lang.String, oracle.sql.BLOB)';

  Procedure DelEntry(iName Varchar2) As
    Language Java Name 'J_Zip.DelEntry(String)';

  Function EntryCount Return Number As
    Language Java Name 'J_Zip.EntryCount() return int';

  Procedure UnPack(iNamesOnly Number) As
    Language Java Name 'J_Zip.UnPack(int)';

  Procedure GetEntry
  (
    iName    Varchar2,
    oContent In Out Blob
  ) As
    Language Java Name 'J_Zip.GetEntry(java.lang.String, oracle.sql.BLOB[])';

  Procedure GetEntry
  (
    iNum     Number,
    oContent In Out Blob
  ) As
    Language Java Name 'J_Zip.GetEntry(int, oracle.sql.BLOB[])';

  Function GetName(iNum Number) Return Varchar2 As
    Language Java Name 'J_Zip.GetName(int) return java.lang.String';

  Procedure GetNames(oNames In Out Nocopy Clob) As
    Language Java Name 'J_Zip.GetNames(oracle.sql.CLOB[])';

  Procedure GetNames
  (
    iZip   Blob,
    oNames In Out Nocopy Clob
  ) As
    Language Java Name 'J_Zip.GetNames(oracle.sql.BLOB, oracle.sql.CLOB[])';

  Procedure Pack As
    Language Java Name 'J_Zip.Pack()';

  Procedure UnPackEntry
  (
    iZip     Blob,
    iName    Varchar2,
    oContent In Out Nocopy Blob
  ) As
    Language Java Name 'J_Zip.UnPackEntry(oracle.sql.BLOB, java.lang.String, oracle.sql.BLOB[])';

End; -- mfz
...
Рейтинг: 0 / 0
11.08.2010, 08:21
    #36785175
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
d.nemolchev
Package body
А без боди можно было обойтись. Хотя иногда полезно поабстрагировать декларацией на реализацию.
...
Рейтинг: 0 / 0
11.08.2010, 08:31
    #36785185
d.nemolchev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
-2-,
пасиба, никогда не обращал внимания на эту возможность.
Век живи - век учись...
...
Рейтинг: 0 / 0
11.08.2010, 08:39
    #36785192
d.nemolchev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
PS. если требуется архивировать многоуровневую структуру, то имена файлов внутри папок надо задавать в виде
<FolderName>("\"|"/")[<FolderName2>("\"|"/")[...]]filename.ext
...
Рейтинг: 0 / 0
11.08.2010, 11:17
    #36785531
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
alient,

Если кто не знает, штатные классы Java из пакета java.util.zip не работают с именами файлов на русском языке, да и не только на русском. В пакете Apache ANT org.apache.tools.zip есть аналогичные классы, но "пофиксенные", все имена и методы классов совпадают со штатными.
...
Рейтинг: 0 / 0
11.08.2010, 13:46
    #36785948
d.nemolchev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
Garrick
Если кто не знает, штатные классы Java из пакета java.util.zip не работают с именами файлов на русском языке, да и не только на русском. В пакете Apache ANT org.apache.tools.zip есть аналогичные классы, но "пофиксенные", все имена и методы классов совпадают со штатными.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
SQL> conn ****/****@db11
Соединено.
SQL> select * from v$version;

BANNER                                                                          
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release  11 . 2 . 0 . 1 . 0  - Production          
PL/SQL Release  11 . 2 . 0 . 1 . 0  - Production                                          
CORE	 11 . 2 . 0 . 1 . 0 	Production                                                      
TNS for  32 -bit Windows: Version  11 . 2 . 0 . 1 . 0  - Production                         
NLSRTL Version  11 . 2 . 0 . 1 . 0  - Production                                          

SQL> set serverout on
SQL> Declare
   2     z Blob;
   3     c Raw( 100 ) := utl_raw.copies('AA55',  50 );
   4   Begin
   5     dbms_lob.createtemporary(z, True);
   6     dbms_lob.writeappend(z, utl_raw.length(c), c);
   7     mfz.Clear;
   8     For i In  1  ..  10 
   9     Loop
  10       mfz.AddEntry('Папка_' || i || '\' || 'Файл_' || i || '.дат', z);
  11     End Loop;
  12     mfz.Pack;
  13     dbms_lob.trim(z,  0 );
  14     mfz.GetZipContent(z);
  15     mfz.Clear;
  16     mfz.SetZipContent(z);
  17     mfz.UnPack( 0 );
  18     For i In  0  .. mfz.EntryCount -  1 
  19     Loop
  20       dbms_output.put_line(mfz.GetName(i));
  21     End Loop;
  22     dbms_lob.freetemporary(z);
  23   End;
  24   /
Папка_1\Файл_1.дат                                                              
Папка_2\Файл_2.дат                                                              
Папка_3\Файл_3.дат                                                              
Папка_4\Файл_4.дат                                                              
Папка_5\Файл_5.дат                                                              
Папка_6\Файл_6.дат                                                              
Папка_7\Файл_7.дат                                                              
Папка_8\Файл_8.дат                                                              
Папка_9\Файл_9.дат                                                              
Папка_10\Файл_10.дат                                                            

Процедура PL/SQL успешно завершена.

SQL> 
Garrick, уточните версию и платформу...
У меня zip нормально работает с версии 9.2.0.5, опробован был на HP-UX & Win32...
...
Рейтинг: 0 / 0
11.08.2010, 13:57
    #36785980
d.nemolchev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
Упс... Искажение имен имеет место быть :-(
...
Рейтинг: 0 / 0
11.08.2010, 14:39
    #36786098
Тупой Пух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
d.nemolchevУпс... Искажение имен имеет место быть :-(

а так:
Код: plaintext
1.
    zipOutputStream.setEncoding("CP866");
...
Рейтинг: 0 / 0
11.08.2010, 15:04
    #36786176
d.nemolchev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
Тупой Пух,

setEncoding - эта крышка не от той кастрюли, не от java.util.zip...
...
Рейтинг: 0 / 0
11.08.2010, 17:52
    #36786709
Тупой Пух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
d.nemolchevТупой Пух,

setEncoding - эта крышка не от той кастрюли, не от java.util.zip...

от той - setEncoding это метод ZipOutputStream
...
Рейтинг: 0 / 0
11.08.2010, 18:04
    #36786753
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
Тупой Пух
от той - setEncoding это метод ZipOutputStream
Где? java.util.zip.ZipOutputStream
А вот тут есть org.apache.tools.zip.ZipOutputStream как я и "говорил"
...
Рейтинг: 0 / 0
11.08.2010, 19:54
    #36787012
Тупой Пух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
GarrickТупой Пух
от той - setEncoding это метод ZipOutputStream
Где? java.util.zip.ZipOutputStream
А вот тут есть org.apache.tools.zip.ZipOutputStream как я и "говорил"

Да, действительно, я ошибся .....

Надо будет поэксперементировать: нельзя ли в конструктор java.util.zip.ZipEntry передавать уже заранее перекодированную в CP866 строку с именем файла.
...
Рейтинг: 0 / 0
11.08.2010, 22:59
    #36787234
d.nemolchev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
Тупой Пухнельзя ли в конструктор java.util.zip.ZipEntry передавать уже заранее перекодированную в CP866 строку с именем файла.
Сомневаюсь...
Первая мысль моя была такой же, но конструктор java.util.zip.ZipEntry принимает UTF-имя файла, а для не-латиницы это 2*length байт.
Т.е. в принципе можно попробовать раскорячиться и подсунуть имя с четной длиной да и то если не станет вываливаться валидация по существованию соответствующих UTF-Char-ов.
Но такой прием считаю неприемлимым :-( ...
...
Рейтинг: 0 / 0
11.08.2010, 23:04
    #36787236
d.nemolchev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
офф
Тупой Пухпередавать уже заранее перекодированную в CP866 строку с именем ф Э йла.
так точнее ...
...
Рейтинг: 0 / 0
11.08.2010, 23:17
    #36787244
d.nemolchev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
Причем в 1.4 конструктор OutputStreamWriter до указания Charset-а они допилили, а вот конструктор ZipEntry - не догадались...
...
Рейтинг: 0 / 0
12.08.2010, 09:34
    #36787481
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
Используйте пакет от ANT'а и не парьтесь.
...
Рейтинг: 0 / 0
17.08.2010, 12:45
    #36795267
alient
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
d.nemolchev,

Решил протестировать ваш ява класс . Но на мои попытки разархивировать зип файл чтото начало ругаться.

Код: plaintext
1.
exec mfz.unpack('C:\test\input\d09.zip');

Обьясните плз как пользоваться если я чтото не понимаю? Надо извлечь архив C:\test\input\d09.zip как вы понимаете
...
Рейтинг: 0 / 0
17.08.2010, 12:58
    #36795306
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
alientНо на мои попытки разархивировать зип файл чтото начало ругатьсяА у меня все ок, вполне ожидаемая реакция:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> exec mfz.unpack('C:\test\input\d09.zip')
BEGIN mfz.unpack('C:\test\input\d09.zip'); END;

      *
ERROR at line  1 :
ORA- 06550 : line  1 , column  7 :
PLS- 00201 : identifier 'MFZ.UNPACK' must be declared
ORA- 06550 : line  1 , column  7 :
PL/SQL: Statement ignored
...
Рейтинг: 0 / 0
17.08.2010, 13:09
    #36795352
d.nemolchev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
alient,

пост от 11 авг 10, 13:46 в этой ветке посмотрите внимательно.
Строки 7-14 - создание зипа, 15-21 - чтение зипа (кроме GetName в пакете есть еще GetEntry и UnpackEntry)
Этот пакет работает с zip-контентом, лежащим в BLOB-ах, а не в файловой системе...
...
Рейтинг: 0 / 0
17.08.2010, 13:13
    #36795365
alient
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
А адаптировать для файловой системы?
Мне в блобы не приходилось помещать архивы- в каких случаях это приходится делать?
...
Рейтинг: 0 / 0
17.08.2010, 13:18
    #36795391
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java Archive
alientА адаптировать для файловой системы?
Мне в блобы не приходилось помещать архивы- в каких случаях это приходится делать?А для файловой системы есть более эффективные утилиты упаковки файлов, чем oracle.exe. И, главное, бесплатные.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Java Archive / 25 сообщений из 47, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]