Este é meu sql com os parametros
sql = new StringBuffer();
sql.append("Update t018_pac_rh set ");
sql.append("EMPRESA = '?', ");
sql.append("FILIAL = '?', ");
sql.append("MATRICULA = ?, ");
sql.append("NOME = '?', ");
sql.append("DT_NASC= '?', ");
sql.append("NOME_CARGO = '?', ");
sql.append("CCUSTO = '?' ,");
sql.append("EMAIL_PRODESP = '?', ");
sql.append("HORARIO_ENTRADA = '?', ");
sql.append("HORARIO_SAIDA = '?', ");
sql.append("DATA_ADMIS = STR_TO_DATE('?','%d%m%Y'), ");
sql.append("SALARIO = insert('?' ,length(?)-1,0,'.'), ");
sql.append("SEXO = '?' ,");
sql.append("DT_ULT_PROM = STR_TO_DATE('?','%d%m%Y'), ");
sql.append("COD_CARGO = ? , ");
sql.append("FERIAS_INICIO = STR_TO_DATE('?','%d%m%Y'), ");
sql.append("FERIAS_FIM = STR_TO_DATE('?','%d%m%Y') ");
switch(Integer.parseInt(dadosFuncionario.get(46).toString().trim())) {
case 2:
sql.append(", LICENCA_INICIO = STR_TO_DATE('?','%d%m%Y') ");
break;
case 3:
sql.append(", LICENCA_INICIO = STR_TO_DATE('?','%d%m%Y') ");
break;
case 5:
sql.append(", LICENCA_INICIO = STR_TO_DATE('?','%d%m%Y') ");
break;
case 6:
sql.append(", AFASTAMENTO_INICIO = STR_TO_DATE('?','%d%m%Y') ");
break;
case 7:
sql.append(", LICENCA_INICIO = STR_TO_DATE('?','%d%m%Y') ");
break;
case 9:
sql.append(", LICENCA_INICIO = STR_TO_DATE('?','%d%m%Y') ");
break;
case 97:
sql.append(", AFASTAMENTO_INICIO = STR_TO_DATE('?','%d%m%Y') ");
break;
default:
sql.append(", LICENCA_INICIO = STR_TO_DATE('000000','%d%m%Y'), ");
sql.append("AFASTAMENTO_INICIO = STR_TO_DATE('000000','%d%m%Y') ");
break;
}
sql.append(", cod_cargo_sistema = ");
if(h != 0){
sql.append("(select cod_cargo " +
"from t006_pac_cargo " +
"where cod_cargo_prodesp= ? && " +
"referencia_de <=(" +
"select cod_referencia from t008_pac_referencia_salarial " +
"where valor_"+h+"h= insert('?',length(?)-1,0,'.')) && " +
"referencia_ate >=(" +
"select cod_referencia from t008_pac_referencia_salarial where valor_40h=insert('?',length(?)-1,0,'.')))");
}
sql.append(", cod_alocacao = (select cod_alocacao " +
"from t019_pac_alocacao_gastos " +
"where c_custo=?)");
Aqui eu seto os valores:
pstmt = con.prepareStatement(sql.toString());
int i = 1;
pstmt.setString(i++, dadosFuncionario.get(0).toString().trim());
pstmt.setString(i++, dadosFuncionario.get(1).toString().trim());
pstmt.setInt(i++, Integer.parseInt(dadosFuncionario.get(2).toString().trim()));
pstmt.setString(i++, dadosFuncionario.get(3).toString().trim().replaceAll("'","´"));
pstmt.setString(i++, dadosFuncionario.get(4).toString());
pstmt.setString(i++, dadosFuncionario.get(5).toString().trim().replaceAll("'","´"));
pstmt.setString(i++, dadosFuncionario.get(8).toString().replaceAll("'","´"));
pstmt.setString(i++, dadosFuncionario.get(26).toString().trim().replaceAll("'","´"));
pstmt.setString(i++, dadosFuncionario.get(31).toString().trim());
pstmt.setString(i++, dadosFuncionario.get(32).toString().trim());
pstmt.setString(i++, dadosFuncionario.get(33).toString().trim());
pstmt.setString(i++, Integer.toString(Integer.parseInt(dadosFuncionario.get(34).toString())));
pstmt.setInt(i++, Integer.parseInt(dadosFuncionario.get(34).toString()));
pstmt.setString(i++, dadosFuncionario.get(35).toString().trim());
pstmt.setString(i++, dadosFuncionario.get(36).toString().trim());
pstmt.setInt(i++, Integer.parseInt(dadosFuncionario.get(37).toString().trim()));
pstmt.setString(i++, dadosFuncionario.get(43).toString().trim());
pstmt.setString(i++, dadosFuncionario.get(44).toString().trim());
switch(Integer.parseInt(dadosFuncionario.get(46).toString().trim())) {
case 2:
pstmt.setString(i++, dadosFuncionario.get(45).toString().trim());
break;
case 3:
pstmt.setString(i++, dadosFuncionario.get(45).toString().trim());
break;
case 5:
pstmt.setString(i++, dadosFuncionario.get(45).toString().trim());
break;
case 6:
pstmt.setString(i++, dadosFuncionario.get(45).toString().trim());
break;
case 7:
pstmt.setString(i++,dadosFuncionario.get(45).toString().trim());
break;
case 9:
pstmt.setString(i++, dadosFuncionario.get(45).toString().trim());
break;
case 97:
pstmt.setString(i++,dadosFuncionario.get(45).toString().trim());
break;
}
if(h == 0){
pstmt.setInt(i++, 0);
}
else{
pstmt.setInt(i++, Integer.parseInt(dadosFuncionario.get(37).toString().trim()));
pstmt.setString(i++, Integer.toString(Integer.parseInt(dadosFuncionario.get(34).toString())));
pstmt.setInt(i++, Integer.parseInt(dadosFuncionario.get(34).toString()));
pstmt.setString(i++, Integer.toString(Integer.parseInt(dadosFuncionario.get(34).toString())));
pstmt.setInt(i++, Integer.parseInt(dadosFuncionario.get(34).toString()));
}
pstmt.setString(i++, dadosFuncionario.get(8).toString().replaceAll("'","´"));
pstmt.setString(i++, dadosFuncionario.get(2).toString());
pstmt.executeUpdate();
Não entendo isso, como pode ver no objeto sql uqe está sendo criado eu uso varios parametros.
Aguardo retorno.
Abraços!