Eu sei que o assunto é rodado… entretanto após 2 horas de Google, e Busca no guj, ainda nao encontrei unma solução…
simples: alguem ai sabe como transformar um Blob (java.sql.Blob) pra um BLOB (Oracle)??? tentei de tudo qto e jeito, mas peguei ClassCastException em toda as tentativas…
Desculpe, mas nem tinha visto os construtores desta classe.
Connection você tem que ter, se não você não consegue conectar no Oracle. Veja no javadoc a relação entre Connection e OracleConnection. O byte[] é o retorno do método getBytes.
Mas, de novo, não dá para usar CallableStatement ao invés de OracleCallableStatement???
java.lang.ClassCastException: org.firebirdsql.jdbc.FBBlob
at oracle.jdbc.driver.OraclePreparedStatement.setBlobInternal(OraclePreparedStatement.java:6840)
at oracle.jdbc.driver.OracleCallableStatement.setBlob(OracleCallableStatement.java:4612)
at adm.sincronizador.Sincronizador.executeOracleStoredProcedure(Sincronizador.java:501)
at adm.sincronizador.Sincronizador.access$3(Sincronizador.java:208)
at adm.sincronizador.Sincronizador$1.run(Sincronizador.java:156)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
Por que não funcionou? Será que é por que você usou OracleConnection? Precisa usar OracleConnection? Se usar Connection e CallbleStatement não dá certo? Qual o erro?
[quote=fabiocsi]
bom, xo explicar melhor… tenho a seguinte missão: passar uns Blobs de um banco local Firebird, prum servidor Oracle…
em um dado momento eu faço
java.lang.ClassCastException: org.firebirdsql.jdbc.FBBlob
at oracle.jdbc.driver.OraclePreparedStatement.setBlobInternal(OraclePreparedStatement.java:6840)
at oracle.jdbc.driver.OracleCallableStatement.setBlob(OracleCallableStatement.java:4612)
at adm.sincronizador.Sincronizador.executeOracleStoredProcedure(Sincronizador.java:501)
at adm.sincronizador.Sincronizador.access$3(Sincronizador.java:208)
at adm.sincronizador.Sincronizador$1.run(Sincronizador.java:156)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
[/quote]
Você entendeu por que está dando este tipo de erro?
O problema é: oracle.sql.BLOB NÃO implementa java.sql.Blob. Então não adianta tentar fazer cast (implicito ou explicito) que não vai dar certo de jeito nenhum. Teria que achar um método que transforme de um para o outro. Não sei qual é este método, mas achei que transformando em byte[] talvez desse certo. Precisa ver os manuais da Oracle.