Fiz um teste aqui e olha que coisa estranha.
após eu executar a Query (sql.executeUpdate()) eu coloquei para imprimir:
System.out.println("sql = "+sql.executeUpdate());
foi impresso “sql = 0”
Olha só!! fiz o mesmo teste num insert q funciona e veja o retorno: “sql = 1”
O q significa isso ?
meu método:
public String getAprovar() throws SQLException, Exception {
Conexao cnct = new Conexao();
try {
PreparedStatement sql, sql_op, sql_ls, sql_in = null;
ResultSet rs = null;
String operacao = null;
String tipo = null; //Tipo Limite Aprovação
int tabela_base;
cnct.conecta();
if (id_historico != null){
for (int i=0;i<id_historico.length;i++){
sql_op = cnct.conn.prepareStatement
("SELECT wi.operacao, " +
" hw.id_tabela_base, " +
" hw.chave " +
" FROM workflow_item wi, " +
" historico_workflow hw " +
" WHERE wi.id_workflow_item = hw.id_workflow_item " +
" AND hw.id_historico_workflow = ? ");
sql_op.setString(1, id_historico[i]);
rs = sql_op.executeQuery();
if(rs.next()){
operacao = rs.getString(1);
tabela_base = rs.getInt(2);
chave = rs.getString(3);
if(tabela_base == 7){ //Tabela Limite de Crédito
if(operacao.equals("V")){
tipo = "R";
}else if(operacao.equals("A")){
tipo = "A";
}
if(limite_aprovado == null){
sql_ls = cnct.conn.prepareStatement
("SELECT To_Char(Decode(ls.valor_aprovado,0, "+
" Decode(ls.valor_recomendado,0,ls.valor_solicitado, "+
" ls.valor_recomendado), "+
" ls.valor_aprovado), 'FM999G999G990D00','NLS_Numeric_characters=,.' " +
" )Limite_solicitado, "+
" Decode(Decode(ls.situacao_aprovada,0,ls.sequencial_situacao_cliente, "+
" ls.situacao_aprovada),null, "+
" 0, "+
" Decode(ls.situacao_aprovada,0,ls.sequencial_situacao_cliente, "+
" ls.situacao_aprovada)" +
" )Situacao_solicitada "+
" FROM limite_solicitacao ls " +
" WHERE ls.id_limite_solicitacao = ?");
sql_ls.setString(1, chave);
rs = sql_ls.executeQuery();
if(rs.next()){
limite_aprovado = rs.getString(1).replace("." , "");
situacao_aprovada = rs.getString(2);
}
sql_ls.close();
rs.close();
}
cnct.conn.setAutoCommit(true);
sql_in = cnct.conn.prepareStatement
("INSERT INTO limite_aprovacao( " +
" id_limite_aprovacao, " +
" id_limite_solicitacao, " +
" data, " +
" usuario, " +
" tipo, " +
" observacoes, " +
" valor_aprovacao, " +
" sequencial_situacao_cliente, " +
" id_historico_workflow ) " +
" VALUES( " +
" sq_limite_aprovacao.nextval, " +
" ?, " +
" Sysdate, " +
" ?, " +
" ?, " +
" ?, " +
" ?, " +
" ?, "+
" ?)");
sql_in.setString(1, chave);
sql_in.setString(2, usuario);
sql_in.setString(3, tipo);
sql_in.setString(4, observacao_workflow);
sql_in.setString(5, limite_aprovado);
sql_in.setString(6, situacao_aprovada);
sql_in.setString(7, id_historico[i]);
sql_in.executeUpdate();
System.out.println("sql_in = "+sql_in.executeUpdate());
sql_op.close();
sql_in.close();
}
sql = cnct.conn.prepareStatement("UPDATE historico_workflow SET " +
"data_resposta = sysdate, resposta = ? WHERE id_historico_workflow = ?");
sql.setString(1, operacao);
sql.setString(2, id_historico[i]);
sql.executeUpdate();
System.out.println("sql = "+sql.executeUpdate());
sql.close();
}
}
}
}
catch (SQLException sqle) {
System.out.println(sqle.getMessage());
sqle.printStackTrace();
throw new java.sql.SQLException(sqle.getMessage());
}
catch (Exception e) {
System.out.println(e.getMessage());
throw new Exception(e.getMessage());
}
finally {
try{
cnct.conn.close();
//pool.close();
}
catch(Exception e){e.printStackTrace();}
}
return "";
}