E ai Pessoal…beleza???
Preciso de uma ajuda para obter uma sequence que criei no oracle.
Estou com um metodo “ObterProximoNumero” que me retorna um Integer como segue abaixo. Mas o problema é que quando eu faço rs.getInt(); ele recupera um int, só que eu preciso recuperar um Integer, pq na servlet quando forço uma request.setAttribute ele esta esperando uma “String” que na qual passo o nome do meu campo da jsp e um Integer, se eu passar um int no lugar, ele me lança um erro.
Sera que alguem poderia me ajudar a recuperar essa sequence? Não to utilizando nenhum framework, nem mesmo o hibernate. Isso q ta me complicando a vida. Segue abaixo o codigo do meu DAO.
public Integer obterProximoNumero(){
[b]Integer valorReturn = null;[/b]
try {
Connection con = getConnection();
String sql = "[b]select GERAL.SEQ_ATIVIDADE_ID.nextval from dual";[/b]
PreparedStatement stmt = con.prepareStatement(sql);
ResultSet rs = stmt.executeQuery(sql);
[b]valorReturn = rs.getInt(1);[/b]
con.close();
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
return valorReturn;
}
e na minha servlet, estou fazendo assim:
OBS: Estou deixando em negrito onde esta me dando problema.
[b]Integer numero = null;[/b]
try {
AtividadeDAO atividadeDao = new AtividadeDAO();
numero = atividadeDao.obterProximoNumero();
[b]request.setAttribute("numero", numero);[/b]
RequestDispatcher rd = request.getRequestDispatcher("/editar_apontamento_atividade.jsp");
rd.forward(request, response);
} finally {
out.close();
}
Se alguem poder dar uma luz…ficaria muito muito grato.
Preciso apresentar esse valor da sequence num input type text da minha jsp.
Abraços…valeu a todos. 
Cara faça desse jeito:
public Integer obterProximoNumero(){
Integer valorReturn = null;
try {
Connection con = getConnection();
String sql = "select GERAL.SEQ_ATIVIDADE_ID.nextval from dual";
PreparedStatement stmt = con.prepareStatement(sql);
ResultSet rs = stmt.executeQuery(sql);
Integer i = new Integer(rs.getInt(1));
valorReturn = i;
con.close();
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
return valorReturn;
}
Valeu parcero…
Valeu mesmo, mas acabei descobrindo um jeito igual ao seu, porém minima coisa diferente…fiz assim:
int value = rs.getInt(1);
valorReturn = new Integer(value);
con.close();
rs.close();
Só que como eu nao consigo debugar aqui esse código ta dificil achar o erro por log…
Ai descobri que nao esta achando a Sequence.
Pra buscar a sequence não é apenas “select .<nome_sequence>.currval from dual” ???
Quando eu coloco “select GERAL.SEQ_ATIVIDADE_ID.CURRVAL from dual” o sistema lança um log “a tabela ou view não existe”.
Dai entao eu altero para “select SEQ_ATIVIDADE_ID.CURRVAL from dual” e ai o sistema lança outro log dizendo que “a seqüência não existe” (mas na verdade, ela esta lá sim).
E agora coloquei o nome do banco assim " select ERPTS.SEQ_ATIVIDADE_ID.CURRVAL from dual" e lança a mesma exception de que a sequencia nao existe.
Isso ta muito estranho. Será que falta algo ai nessa select??
Abraço.
Cara…
Resolvi esse problema da sequence nao encontrada…pelo menos agora foi localizada…mas agora esta dizendo o seguinte…
java.sql.SQLException: ORA-08002: a seqüência SEQ_ATIVIDADE_ID.CURRVAL ainda não foi definido nesta sessão
O que vc me sugeria para essa exception??
[size=18]E ai Galera…
Estou postando aqui meu msn…assim espero poder ter contato direto com desenvolvedores java pelo Brasil.
gringo.roots@hotmail.com
quem tiver interesse em criar um “forum” entre a gente pelo msn, podem adicionar. Assim fica simples para poder tirar duvidas e obter ajuda também.
Abraço a todos.[/size]
Cara tenta dar um nextval nesta sequence só para ver se ocorre o mesmo problema, uma vez eu tivesse esse problema, porém foi pq não tinha ainda iniciado minha sequence.
Valeu parcerão…mas ja consegui resolver…
Fiz isso mesmo, estou pegando o nextval. Não tinha me tocado que tava com o currval. Por isso tava pedindo pra settar na seçao.
Mas fico grato pela preocupação.
qualquer coisa, add no msn, quando vc precisar pode dar um tok…é sempre bom ter contatos de programaçao.
Abraço.
gringo.roots@hotmail.com