Olá, meu primeito tópico aqui
Estou com o seguinte problema:
Estou trabalhando com o JDeveloper and Oracle10g, e tenho uma Java Stored Procedure que está chamando outra JavaSP dentro dela de acordo com o código abaixo:
int sd = 0;
try{
CallableStatement clstAddRel =
conn.prepareCall(" {call FC_RJS_INCLUIR_RELACAO_PRODCAT(?,?)} ");
clstAddRel.registerOutParameter(1, Types.INTEGER);
clstAddRel.setString(1,
Integer.toString(id_produto_interno));
clstAddRel.setString(2, ac[i].toString());
clstAddRel.execute();
sd = clstAddRel.getInt(1);
}catch(SQLException e){
String sqlTeste3 =
"insert into ateste values (SQ_ATESTE.nextval, ?)";
PreparedStatement pstTeste3 =
conn.prepareStatement(sqlTeste3);
pstTeste3.setString(1,"erro: "+e.getMessage()+ ac[i]);
pstTeste3.execute();
pstTeste3.close();
}
Estou gravando o erro em uma tabela chamada ATESTE, e a mensagem gravada é: “Conflito de tipo de parâmetro”…
A função “FC_RJS_INCLUIR_RELACAO_PRODCAT”, como dito, é uma Java Stored Procedure também, já está exportada para o Oracle, e retorna um int,
Eu tentei também o código abaixo, mas dá o mesmo erro:
try{
OracleCallableStatement clstAddRel =
(OracleCallableStatement)conn.prepareCall(" {call FC_RJS_INCLUIR_RELACAO_PRODCAT(?,?)} ");
clstAddRel.registerOutParameter(1, OracleTypes.NUMBER);
clstAddRel.setString(1,
Integer.toString(id_produto_interno));
clstAddRel.setString(2, ac[i].toString());
clstAddRel.execute();
sd = clstAddRel.getInt(1);
}catch(SQLException e){
String sqlTeste3 =
"insert into ateste values (SQ_ATESTE.nextval, ?)";
PreparedStatement pstTeste3 =
conn.prepareStatement(sqlTeste3);
pstTeste3.setString(1,"erro: "+e.getMessage()+ ac[i]);
pstTeste3.execute();
pstTeste3.close();
}
Alguém poderia me dizer o que estou fazendo de errado?