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,