Perfeito Fábio, testei aqui com 2 sessões diferentes abertas e realmente funcionou!
O Vitor Jr. também me passou a mesma solução pelo skype... Obrigado aos dois! Olha só que coisa... 15 anos de SQL e PL/SQL e eu não sabia desse conceito básico até hoje! Nunca tinha precisado. Pra mim o currval pegava o último numero gerado pela sequence, independente de sessão. Pra gente ver que SEMPRE há o que aprender! Em 22 de abril de 2014 11:23, Milton Bastos Henriquis Jr. < miltonbas...@gmail.com> escreveu: > Fala Fábião! > > Cara, eu juro que não sabia que o currval só pegava da sessão atual! > > Achei que o currval pegava o valor atual da sequence independente da > sessão! > > Vou testar aqui... > > > Em 22 de abril de 2014 11:21, Fabio Prado <fbifa...@gmail.com> escreveu: > > >> >> Miltão, por favor especifique como será essa transação concorrente. Se >> ela for executada por outro usuário vc não terá problema algum, pois o >> CURRVAL da SEQUENCE é um valor de sessão. >> >> É importante entender que as transações de outros usuários não afetarão o >> CURRVAL de uma sessão que acabou de fazer o INSERT na TABLE1, se vc >> utilizar o CURRVAL logo em seguida para fazer INSERT em outra tabela, ok? >> >> >> []s >> >> *Fábio Prado* >> <http://www.fabioprado.net/2014/01/oracle-ace-o-que-e-isso.html> >> www.fabioprado.net >> "Compartilhando conhecimentos e treinando profissionais em Bancos de >> Dados Oracle" >> >> >> >> Em 22 de abril de 2014 11:10, Milton Bastos Henriquis Jr. < >> miltonbas...@gmail.com> escreveu: >> >> >>> >>> Bom dia amigos! >>> >>> Tenho um probleminha aqui... quero ver se alguém consegue me ajudar. >>> >>> A situação é a seguinte: >>> >>> - Tenho uma tabela TABLE1. >>> Essa tabela (assim como todas as outras do sistema) tem uma trigger de >>> insert. >>> >>> A PK dessa tabela é gerada por uma sequence. >>> Isso é feito dentro da trigger - até aí tudo bem, algo bem comum de se >>> ver por aí. >>> >>> >>> O meu problema é que eu tenho um processo em que eu preciso fazer um >>> insert na tabela TABLE1 (isso numa stored procedure), e preciso do ID >>> que foi gerado >>> para ser inserido em outra tabela. >>> >>> Eu não quero pegar o CURRVAL da sequence, pois corro o risco de uma >>> transação >>> concorrente também fazer um nextval nessa sequence nesse meio tempo. >>> >>> Alguém sabe se é possível eu conseguir retornar esse valor que está >>> sendo gerado dentro da trigger? >>> >>> >>> >> >> > >