Retornar id do registro gravado em oracle

É 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?

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.

[quote=kaique]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.[/quote]
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… :smiley: