Migrar Campo Blob do SQL-Server para o Oracle

Pessoal,

Estou fazendo uma classe java para migrar uma tabela do SQL-Server que tem um campo BLOB para outra tabela no Oracle com mesma estrutura.

Vejam o código:

package br.com.infox;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

public class Migrador {
	
	public static void main(String[] args){
		try {
			// Conexão com o SQL Server
			Class.forName("net.sourceforge.jtds.jdbc.Driver");
			Connection conSQL = DriverManager.getConnection ("jdbc:jtds:sqlserver://10.10.2.9/protocolo","prot","suinf2002");
			// Conexão com o Oracle
			Class.forName("oracle.jdbc.driver.OracleDriver");
			Connection conORA = DriverManager.getConnection ("jdbc:oracle:thin:@10.10.2.2:1521:des","protocolo","protocolo");
			
			Statement stSQL = conSQL.createStatement();
			String querySQL = "SELECT * FROM DOC_INCORPORADO";
			ResultSet rsSQL = stSQL.executeQuery(querySQL);
			
			String queryORA = "INSERT INTO PROT_VITALICIAMENTO (NU_PROCESSO, ANO_PROCESSO, CD_USUARIO, DT_ENVIO," +
					"DE_COMPLEMENTO, NM_ARQUIVO, ARQUIVO, NU_SEQ, CD_TIPO_ARQUIVO, MES, ANO) VALUES (?,?,?,?,?,?,?,?,?,?,?)";
			PreparedStatement psORA = conORA.prepareStatement(queryORA);
			
			while (rsSQL.next()){
				System.out.print("Linha: " + rsSQL.getRow());
				psORA.setInt(1, rsSQL.getInt("nu_processo"));
				psORA.setInt(2, rsSQL.getInt("ano_processo"));
				psORA.setInt(3, rsSQL.getInt("cd_usuario"));
				psORA.setDate(4, rsSQL.getDate("dt_incorporacao"));
				psORA.setString(5, rsSQL.getString("complemento"));
				psORA.setString(6, rsSQL.getString("nm_arquivo"));
				psORA.setBlob(7, rsSQL.getBlob("arquivo"));
				psORA.setInt(8, rsSQL.getInt("num_seq"));
				psORA.setInt(9, rsSQL.getInt("cd_tipo_arquivo"));
				psORA.setInt(10, rsSQL.getInt("mes"));
				psORA.setInt(11, rsSQL.getInt("ano"));
				
				psORA.executeUpdate();
			}
			
			stSQL.close();
			psORA.close();
			conORA.close();
			conSQL.close();
			
		} catch (Exception e){
			e.printStackTrace();
		}
	}

}

Ocorre o seguinte erro:

java.lang.ClassCastException: net.sourceforge.jtds.jdbc.BlobImpl
at oracle.jdbc.driver.OraclePreparedStatement.setBlob(OraclePreparedStatement.java:2198)
at br.com.infox.Migrador.main(Migrador.java:37)

O que pode ser?

Atenciosamente,

Fiz a seguinte alteração:

package br.com.infox;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

public class Migrador {
	
	public static void main(String[] args){
		try {
			// Conexão com o SQL Server
			Class.forName("net.sourceforge.jtds.jdbc.Driver");
			Connection conSQL = DriverManager.getConnection ("jdbc:jtds:sqlserver://10.10.2.9/protocolo","prot","suinf2002");
			// Conexão com o Oracle
			Class.forName("oracle.jdbc.driver.OracleDriver");
			Connection conORA = DriverManager.getConnection ("jdbc:oracle:thin:@10.10.2.2:1521:des","protocolo","protocolo");
			
			Statement stSQL = conSQL.createStatement();
			String querySQL = "SELECT * FROM DOC_INCORPORADO";
			ResultSet rsSQL = stSQL.executeQuery(querySQL);
			
			String queryORA = "INSERT INTO PROT_VITALICIAMENTO (NU_PROCESSO, ANO_PROCESSO, CD_USUARIO, DT_ENVIO," +
					"DE_COMPLEMENTO, NM_ARQUIVO, ARQUIVO, NU_SEQ, CD_TIPO_ARQUIVO, MES, ANO) VALUES (?,?,?,?,?,?,?,?,?,?,?)";
			PreparedStatement psORA = conORA.prepareStatement(queryORA);
			
			while (rsSQL.next()){
				System.out.println("Linha: " + rsSQL.getRow());
				psORA.setInt(1, rsSQL.getInt("nu_processo"));
				psORA.setInt(2, rsSQL.getInt("ano_processo"));
				psORA.setInt(3, rsSQL.getInt("cd_usuario"));
				psORA.setDate(4, rsSQL.getDate("dt_incorporacao"));
				psORA.setString(5, rsSQL.getString("complemento"));
				psORA.setString(6, rsSQL.getString("nm_arquivo"));
				psORA.setBinaryStream(7, rsSQL.getBinaryStream("arquivo"), (int)rsSQL.getBlob("arquivo").length());
				psORA.setInt(8, rsSQL.getInt("num_seq"));
				psORA.setInt(9, rsSQL.getInt("cd_tipo_arquivo"));
				psORA.setInt(10, rsSQL.getInt("mes"));
				psORA.setInt(11, rsSQL.getInt("ano"));
				psORA.executeUpdate();
			}
			
			stSQL.close();
			psORA.close();
			conORA.close();
			conSQL.close();
			
		} catch (Exception e){
			e.printStackTrace();
		}
	}

}

Passou a dar o seguinte erro:

java.sql.SQLException: Exceção de E/S: Connection reset
	at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
	at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
	at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:334)
	at oracle.jdbc.ttc7.TTC7Protocol.handleIOException(TTC7Protocol.java:3668)
	at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1986)
	at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1119)
	at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2191)
	at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2064)
	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2989)
	at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:658)
	at br.com.infox.Migrador.main(Migrador.java:41)

Alguma sugestão do que pode ser? Pois a linha 41 é psORA.executeUpdate();.