Function no Oracle
10/12/2004
0
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
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
Curtir tópico
+ 0
Responder
Posts
10/12/2004
Motta
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
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
Responder
Clique aqui para fazer login e interagir na Comunidade :)