Function no Oracle

Oracle

10/12/2004

Caros Amigos,
A pouco tempo começei fazer funções em PL/SQL no Oracle e gostaria de saber daqueles que tem mais experiência se a função que chamei no Oracle pode ser executada por dois usuários ao mesmo tempo.
A questão é que eu tenho em uma tabela uma sequencia de número de notas fiscais (a sequencia tem que ser na tabela e não em Sequence). Mas minha preocupação é que duas pessoas peguem o mesmo número de sequencia na hora de imprimir a NF. Para isso criei a função PEGA_SEQUENCIA, mas aí veio a dúvida, é possível duas pessoas executarem ao mesmo tempo a função e pegarem o mesmo registro?
Por isso gostaria de saber se vou ter este problema ou se tem como fazer uma função que só execute com uma instância por vêz.
Grato,

Rodrigo Cesar


Rodc

Rodc

Curtidas 0

Respostas

Motta

Motta

10/12/2004

Use a opção for update no select e faça uma transação explicita na aplicação.

para mais detalhes veja nos manuais ade sql e plsql as clausulas

select .... for update

commit / rollback

Esta opção de projeto se aplica a sequencias que não podem pular, mas podem causar deadlocks e travar o sistema pois gera muitos recursos concorrentes


GOSTEI 0
POSTAR