Cara, eu aprendi isso dando aula. Tem muita coisa que a gente só aprende
quando precisa, mas ao dar aulas a gente aprende também o que os outros
precisam, pois os alunos nos questionam muita coisa que a gente tem que se
preparar ou pesquisar para responder!

Como vc disse, *sempre há muito o que aprender*! Quanto mais a gente
estuda, mais entendemos que ainda temos muito o que aprender!


[]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:34, Milton Bastos Henriquis Jr. <
miltonbas...@gmail.com> escreveu:

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

Responder a