Pessoal ve se alguem consegue encontrar esse erro, ja verifiquei a sintaxe, testei no banco na mao e funcionou blz o select, mas no java ta dando esse problema…
abaixo o select:
private static final String SQL_OBTER_USUARIO = "SELECT DISTINCT " +
" U.COD_USUARIO," +
" DSC_LOGIN," +
" DSC_SENHA," +
" DSC_NOME," +
" DATA_CADASTRO," +
" BOL_ATIVO," +
" DATA_CONTRATACAO," +
" DATA_DESLIGAMENTO," +
" FUNCAO " +
" FROM" +
" TBL_USUARIO U," +
" TBL_RE_USUARIO_PERFIL P" +
" WHERE" +
" U.COD_USUARIO = P.COD_USUARIO (+)" +
" AND" +
" (U.COD_USUARIO = ? OR ? = 0 OR ? IS NULL) "+
" AND" +
" UPPER(DSC_LOGIN) LIKE UPPER('?')" +
" AND " +
" UPPER(DSC_NOME) LIKE UPPER('?')" +
" AND " +
" (UPPER(BOL_ATIVO) = UPPER(?) OR ? IS NULL) " +
" AND " +
" (P.COD_PERFIL = ? OR ? = 0 OR ? IS NULL) "+
" ORDER BY " +
" DSC_NOME";
o metodo:
public List obterUsuario(Usuario usuario) {
PreparedStatement ps = null;
ResultSet rset = null;
Connection conn = null;
List retorno = new ArrayList();
if(usuario.getPerfil()==null){
Perfil perfil = new Perfil(0,null);
usuario.setPerfil(perfil);
}
try {
conn = dataSource.getConnection();
ps = conn.prepareStatement(SQL_OBTER_USUARIO);
ps.setInt(1,usuario.getCodUsuario()==null?0:usuario.getCodUsuario());
ps.setInt(2, usuario.getCodUsuario()==null?0:usuario.getCodUsuario());
ps.setInt(3, usuario.getCodUsuario()==null?0:usuario.getCodUsuario());
ps.setString(4, Util.getStringLike(usuario.getDscLogin()));
ps.setString(5, Util.getStringLike(usuario.getDscNome()));
ps.setString(6, usuario.getBolAtivo());
ps.setString(7, usuario.getBolAtivo());
ps.setLong(8, usuario.getPerfil().getCodPerfil());
ps.setLong(9, usuario.getPerfil().getCodPerfil());
ps.setLong(10, usuario.getPerfil().getCodPerfil());
rset = ps.executeQuery();
while (rset.next()) {
Usuario usuarioBD = new Usuario(
rset.getInt("COD_USUARIO"),
rset.getString("DSC_LOGIN"),
rset.getString("DSC_SENHA"),
rset.getString("DSC_NOME"),
rset.getDate("DATA_CADASTRO"),
rset.getString("BOL_ATIVO"),
rset.getDate("DATA_CONTRATACAO"),
rset.getDate("DATA_DESLIGAMENTO"),
rset.getString("FUNCAO"));
retorno.add(usuarioBD);
}
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
fechar(rset);
fechar(ps);
fechar(conn);
}
return retorno;
}
Obrigado a todos!