Java não é meu forte... alguém pode me ajudar a identificar o erro dessa classe? A variável "DST" sempre retorna NULL.
create or replace and compile java source named zipfiles as
import java.io.*;
import java.util.zip.*;
import java.sql.*;
import oracle.sql.*;
public class zipFiles
{
public static void packBlob(oracle.sql.BLOB srcBlob, oracle.sql.BLOB dstBlob[]) {
try {
OutputStream outBuffer = dstBlob[0].getBinaryOutputStream();
InputStream inBuffer = srcBlob.getBinaryStream();
ZipOutputStream zip = new ZipOutputStream(outBuffer);
byte[] tmpBuffer = new byte[256];
int n;
while ((n = inBuffer.read(tmpBuffer)) >= 0)
zip.write(tmpBuffer, 0, n);
zip.close();
}
catch (SQLException e) {
System.err.println(e);
}
catch (IOException e) {
System.err.println(e);
}
}
public static void unpackBlob(oracle.sql.BLOB srcBlob, oracle.sql.BLOB dstBlob[]) {
try {
OutputStream outBuffer = dstBlob[0].getBinaryOutputStream();
InputStream inBuffer = srcBlob.getBinaryStream();
ZipInputStream zip = new ZipInputStream(inBuffer);
byte[] tmpBuffer = new byte[256];
int n;
while ((n = zip.read(tmpBuffer)) >= 0)
outBuffer.write(tmpBuffer, 0, n);
outBuffer.close();
}
catch (SQLException e) {
System.err.println(e);
}
catch (IOException e) {
System.err.println(e);
}
}
}
CREATE OR REPLACE PACKAGE BODY PACKAGE_ZIP AS
PROCEDURE COMPACTA_BLOB (
SRC IN BLOB,
DST IN OUT BLOB) AS
LANGUAGE JAVA
NAME 'zipFiles.packBlob(oracle.sql.BLOB, oracle.sql.BLOB[])';
PROCEDURE DESCOMPACTA_BLOB (
SRC IN BLOB,
DST IN OUT BLOB) AS
LANGUAGE JAVA
NAME 'zipFiles.unpackBlob(oracle.sql.BLOB, oracle.sql.BLOB[])';
END;