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