É o seguinte eu salvo uma tabela via jdbc no oracle e apos disso preciso recuperar o id dela…
tem como eu fazer isto sem precisar fazer um select com os valores que inseri na tabela apos incluilos nela?
Retornar id do registro gravado em oracle
3 Respostas
Cara, não sei qual a forma desse ID na sua tabela, mas se você estiver usando o objeto Sequence para gerar essas chaves, execute o seguinte comando:
SELECT <NOME_DA_SEQUENCE>.CURRVAL FROM DUAL
Acho que o comando é esse para retornar o valor atual de uma sequence…
[]'s.
Cara, não sei qual a forma desse ID na sua tabela, mas se você estiver usando o objeto Sequence para gerar essas chaves, execute o seguinte comando:SELECT <NOME_DA_SEQUENCE>.CURRVAL FROM DUALAcho que o comando é esse para retornar o valor atual de uma sequence…
[]'s.
O problema disso é a concorrência.
Normalmente se faz o select na sequence.nextval antes para recuperar o id unico e insere já com o id no banco.
Você pode usar a cláusula RETURNING para retornar o valor gravado:
INSERT INTO CLIENTES
(CODCLIENTE, <outros campos>)
VALUES (SEQ_CLIENTE.NEXTVAL, <outros campos>)
RETURNING CODCLIENTE
INTO :CODCLIENTE
Isso já deve resolver o seu problema… 
Criado 20 de dezembro de 2007
Ultima resposta 20 de dez. de 2007
Respostas 3
Participantes 4
Alura Sistemas operacionais: entenda seu conceito e suas funções Descubra o que são sistemas operacionais, suas funções e tipos. Aprenda tudo de forma clara e objetiva. Não perca tempo!
Casa do Codigo Orientacao a Objetos: Aprenda seus conceitos e suas... Por Thiago Leite e Carvalho — Casa do Codigo