Problemas com resultSet

3 respostas
H

Boa tarte a todos…
estou com problemas para pegar o resultado de uma determinada query.
qualquer select normal que eu execute funciona numa boa, mas quando faço para pegar o nextval de uma sequence, não consigo…retona sempre a mensagem : Nome de coluna inválido…
minhas tentativas:

1° tentativa:

query = select hfn.sqc_usuario_id.NEXTVAL from dual

executa a query;

resultSet.next();

int cdUsuario = resultSet.getInt(NEXTVAL);
2° tentativa: com alias

query = select hfn.sqc_usuario_id.NEXTVAL  cdUsuario from dual

executa a query;

resultSet.next();

int cdUsuario = resultSet.getInt(cdUsuario);

e sempre da o mesmo erro…tentei usar index da coluna…mas tb da erro

alguem poderia me ajudar…desde ja agradecido.

3 Respostas

S

Olá “heleno_fn”, abaixo seguem 2 códigos de exemplo que funcionam perfeitamente.

stmt = cnx.prepareStatement("SELECT SEQ_SGW_UPLOAD.NEXTVAL QTD FROM DUAL");
rs = stmt.executeQuery();
                            
if(rs != null) {
    if(rs.next()) {
        cdupload = rs.getLong("QTD");
        rs.close();
        stmt.close();
    } else {
        //
    }
} else {
    //
}

e,

stmt = cnx.prepareStatement("SELECT SEQ_GRH_PRETENDENTE.NEXTVAL QTD FROM DUAL");
rs = stmt.executeQuery();
                            
if(rs != null) {
    if(rs.next()) {
        cdPretendente = rs.getString(1);
        rs.close();
        stmt.close();
    } else {
        //
    }
} else {
    //
}

[]´s

E

suponho que vc esteja usando o Oracle, bem… o Nextval é para pegar um número da sequencia e não para ver qual o valor atual, então você está querendo usar em um select a função de dar um novo valor da sequencia e isso não vai dar certo nunca, o nextval é para ser usado em um insert ou update onde vc pede o valor seguinte a sequencia, se vc quer ver o valor atual da sequencia eu esqueci o comando e assim que lembrar eu posto, vou dar um exemplo do uso do nextval

“INSERT INTO T_EXEMPLO (TEXTO,ID) VALUES (‘TESTE DE TESTO’,SEQUENCIA.NEXTVAL)”

esse comando vai fazer com que a sequencia de um novo valor a esse registro como vc pode ver a indéia não se aplicaria a um select.

H

obrigado pelas respostas amigos,
Não posso ainda dizer que consegui…mas assim que conseguir tempo para testar eu volto a comentar o resultado aqui…vlw msm…

So uma coisa… o meu objetivo ali é justamente incrementar a sequence(o que funciona, td vez q testo ela é incrementada), so não consigo pegar o valor que ela obteve.

vlw…chegando em casa se tudo correr bem eu testo…obrigado

Criado 13 de outubro de 2006
Ultima resposta 16 de out. de 2006
Respostas 3
Participantes 3