Oracle 10g and Java

Mapuo
Дата: 17.11.2008 11:40:45
проблема - не работает процедура, которая должна выполнять архивацию файла.
процедура использует java:
create or replace and compile java source named zip as
package tools.utils;
import java.io.*;
import java.util.zip.*;

class makeZipFile {

public static void doZip(String filename,String zipfilename) {
byte[] buf = new byte[1024];
FileInputStream fis = new FileInputStream(filename);
fis.read(buf,0,buf.length);

CRC32 crc = new CRC32();
ZipOutputStream s = new ZipOutputStream((OutputStream)new FileOutputStrea(zipfilename));
s.setLevel(6);
ZipEntry entry = new ZipEntry(filename);
entry.setSize((long)buf.length);
crc.reset();
crc.update(buf);
entry.setCrc( crc.getValue());
s.putNextEntry(entry);
s.write(buf, 0, buf.length);
s.finish();
s.close();
}
}
непосредственно сама процедура:
create or replace procedure
make_zip(srcFile in varchar2, destFile in varchar2) as language java

name 'tools.utils.makeZipFile.doZip(java.lang.String,java.lang.String)'
так вот, при вызове появляется ошибка: ORA-29541: class string.string could not be resolved
версия БД - 10.2.0.2 стоит на юниксе.
код рабочий... на БД 10.1.2 под виндой - все работает.
не могу понять в чем дело, может надо переменные среды прописать или еще что-то...
SQL*Plus
Дата: 17.11.2008 11:57:49
Mapuo
проблема - не работает процедура, которая должна выполнять архивацию файла.
процедура использует java:
create or replace and compile java source named zip as
package tools.utils;
import java.io.*;
import java.util.zip.*;

class  makeZipFile {
   
    public static void doZip(String filename,String zipfilename) {
            byte[] buf = new byte[1024];
            FileInputStream fis = new FileInputStream(filename);
            fis.read(buf,0,buf.length);
            
            CRC32 crc = new CRC32();
            ZipOutputStream s = new ZipOutputStream((OutputStream)new FileOutputStrea(zipfilename));
            s.setLevel(6);
            ZipEntry entry = new ZipEntry(filename);
            entry.setSize((long)buf.length);
            crc.reset();
            crc.update(buf);
            entry.setCrc( crc.getValue());
            s.putNextEntry(entry);
            s.write(buf, 0, buf.length);
            s.finish();
            s.close();
    }
}
непосредственно сама процедура:
create or replace procedure 
make_zip(srcFile in varchar2, destFile in varchar2)  as language java

name 'tools.utils.makeZipFile.doZip(java.lang.String,java.lang.String)'
так вот, при вызове появляется ошибка: ORA-29541: class string.string could not be resolved
версия БД - 10.2.0.2 стоит на юниксе.
код рабочий... на БД 10.1.2 под виндой - все работает.
не могу понять в чем дело, может надо переменные среды прописать или еще что-то...

При оформлении кода используйте, пожалуйста, тег SRC данного форума.
Этим вы повысите свои шансы на получение ответа.
Mapuo
Дата: 17.11.2008 12:09:29
jdk версии 1.4.2
Denis Popov
Дата: 17.11.2008 13:30:18

Mapuo wrote:

> код рабочий... на БД 10.1.2 под виндой - все работает.

Имхо не совсем. Что показывают следующие запросы?

select object_type, object_name, status
from OBJ
where object_type like 'JAVA%'
   and object_name = 'ZIP';

select *
from USER_ERRORS
where type = 'JAVA SOURCE'
   and name = 'ZIP'
order by sequence, line;

Posted via ActualForum NNTP Server 1.4

Mapuo
Дата: 17.11.2008 13:53:40
Denis Popov,

1. говорит, что статус INVALID
2.
ZIP:9: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown
FileInputStream fis = new FileInputStream(filename);
и далее еще 6 ошибок
Denis Popov
Дата: 17.11.2008 14:01:22

Mapuo wrote:

> и далее еще 6 ошибок

Вот и разберись, что за ошибки. Например, почему указан "FileOutputStrea" вместо "FileOutputStream".

Posted via ActualForum NNTP Server 1.4