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

Именно архивирование или сжатие? utl_compress.
...
Рейтинг: 0 / 0
Java Archive
    #36784704
alient
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создаем класс 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
Java Archive
    #36784763
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alientява опять таки рулит!А смысл архивировать базой файлы операционной системы? zip слишком мало ресурсов жрет или не требует программирования?
...
Рейтинг: 0 / 0
Java Archive
    #36785166
d.nemolchev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдруг кому пригодится...
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
Java Archive
    #36785175
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d.nemolchev
Package body
А без боди можно было обойтись. Хотя иногда полезно поабстрагировать декларацией на реализацию.
...
Рейтинг: 0 / 0
Java Archive
    #36785185
d.nemolchev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-,
пасиба, никогда не обращал внимания на эту возможность.
Век живи - век учись...
...
Рейтинг: 0 / 0
Java Archive
    #36785192
d.nemolchev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS. если требуется архивировать многоуровневую структуру, то имена файлов внутри папок надо задавать в виде
<FolderName>("\"|"/")[<FolderName2>("\"|"/")[...]]filename.ext
...
Рейтинг: 0 / 0
Java Archive
    #36785531
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alient,

Если кто не знает, штатные классы Java из пакета java.util.zip не работают с именами файлов на русском языке, да и не только на русском. В пакете Apache ANT org.apache.tools.zip есть аналогичные классы, но "пофиксенные", все имена и методы классов совпадают со штатными.
...
Рейтинг: 0 / 0
Java Archive
    #36785948
d.nemolchev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Java Archive
    #36785980
d.nemolchev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс... Искажение имен имеет место быть :-(
...
Рейтинг: 0 / 0
Java Archive
    #36786098
Тупой Пух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d.nemolchevУпс... Искажение имен имеет место быть :-(

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

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

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

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

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

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

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

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

Обьясните плз как пользоваться если я чтото не понимаю? Надо извлечь архив C:\test\input\d09.zip как вы понимаете
...
Рейтинг: 0 / 0
Java Archive
    #36795306
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Java Archive
    #36795352
d.nemolchev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alient,

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


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