[RESOLVIDO] Índice de coluna inválido

Estou com esse código:

ConexaoOracle con = new ConexaoOracle();
String sql = "SELECT * FROM FROM BINGO.PREMIO WHERE PRE_DESCRICAO LIKE ‘% ? %’ AND PRE_QUANT = ? ";
con.prepararPst(sql);
con.setParam(1, descricao);
con.setParam(2, Integer.parseInt(quant));
Vector dados = con.selecionar();

Me parece que o PreparedStatement não está reconhecendo as duas interrogações, mas somente uma. Como eu faço para que ele identifique ambas??

Para o PreparedStatement qualquer coisa entre apóstrofo é um literal String, então a parte do '% ? %' não é tratada como um parâmetro.

Você tem que modificar seu código dessa forma:

ConexaoOracle con = new ConexaoOracle();
// perceba o LIKE sem usar apóstrofo, somente a interrogação
String sql = "SELECT * FROM FROM BINGO.PREMIO WHERE PRE_DESCRICAO LIKE ? AND PRE_QUANT = ? ";
con.prepararPst(sql);
con.setParam(1, "%" + descricao + "%"); // aqui você concatena os percentuais para o LIKE funcionar
con.setParam(2, Integer.parseInt(quant));
Vector dados = con.selecionar();

Vlw, muito obrigado