Difuldade em obter um resultado do resultset

Olá a todos.
Não sei se dá pra fazer isso, mas…

Eu passo esse comando abaixo para o PreparedStatement e até ai tudo certo.

DECLARE
    nu_sequencial NUMBER;
BEGIN
    SELECT tabela.NEXTVAL
      INTO sequencial
      FROM DUAL;    
	INSERT INTO tabela 2(
	    codigo,
	    nome)
	VALUES (sequencial,?);
END;

Só que eu preciso do sequencial gerado, pois utilizo-o em outros lugares.
Pergunta: dá pra eu retornar esse sequencial gerado nesse proprio SQL?
É que eu não queria fazer uma nova consulta para buscar esse sequencial, pois vou ter que fazer o procedimento acima muitas vezes.

Valeu!!

Kra, vc pode usar o Commons BeanUtils para trabalhar com RowSets.

Com um RowSet vc pode manter os dados recebidos do resultset de forma independente do PreparedStatement. Vc executa uma vez só e guarda no RowSet. Sei que no java tem uma implementação da sun para RowSets, mas parece ser um pouco mais chata de utilizar

Olha uma exemplo:

[code]
RowSetDynaClass rowSet = new RowSetDynaClass(
statement.executeQuery(), false );
List lista = rowSet.getRows();

// agora para iterar é facinho
DynaBean dynaBean = null;

for ( int i = 0; i < lista.size(); i++ ) {
dynaBean = ( DynaBean ) lista.get( i );
Object obj = dynaBean.get( “NOME DA COLUNA” ); // retorna um Object
}[/code]

Veja se funciona :smiley:

Falow!

davidbuzatto

obrigado pela atenção, mas eu não entendi oq vc quis dizer (ou não fui muito claro na descrição do meu problema)…

oq eu gostaria de saber é se tem jeito de eu retornar algum valor dentro desse mesmo SQL e pega-lo no RESULTSET, para não ter que fazer outro acesso só para pegar esse valor.Exemplo:

DECLARE
     nu_sequencial NUMBER;
 BEGIN
     SELECT tabela.NEXTVAL
       INTO sequencial
       FROM DUAL;    
 	INSERT INTO tabela 2(
 	    codigo,
 	    nome)
 	VALUES (sequencial,?);

     // exemplo
     return sequencial;
 END;

Até tentei usar o return, mas parece q o preparedstatement ta tratando esse meu comando sql como uma procedure e não uma função…

Obs.: O banco de dados é Oracle.

Valeu!!

Vc quer q o seu resultset mude toda vez q vc alterar o parâmetro do preparedStatement? Vc vai precisar executar a query de novo.

Eu pensei q vc queria fazer a consulta e manter ela em um objeto que mesmo após fechar a conexão o objeto ficasse vivo. Se vc fechar a conexão q gerou o result set ele tbm é fechado, como falei, pensei q vc quizesse uma forma de manter os dados carregados.

Falow!

Olá,

Crie uma procedure ou function que retorne esse valor pra vc.
Exemplos:
http://www.onjava.com/pub/a/onjava/2003/08/13/stored_procedures.html?page=2

[]´s
Rodrigo