select for update

RONALD
02 de Julio del 2004
Tengo un problema con este select for update:

Resulta que tengo una forma apuntando a una tabla que inicialmente esta vacía, esta foma tiene un select a la misma tabla de la forma para encontar el numero consecutivo, por lo tanto la primera vez trae 0 y le suma 1, el problema es que hasta tanto no se guarde este numero 1, esta disponible y si otra persona intenta acceder a la misma forma pero desde otra maquina el select igualmente le trae el numero 1, entonces el que guarde primero es el que se queda con el valor mientras que al otro le va a dar un error de duplicacion de indice, lo que quiero es que el numero que consiga la forma al entrar quede reservado y que si otro entra a la forma simultaneamente ,le de el siguiente, lo intenté hacer con el select for update, pero como el registro no existe dentro de la tabla no lo puede bloquear para el update, yo lo veo como un select for insert pero creo que no existe.

gracias de antemano, estoy usando form5 y oracle 9i.

Saludos desde VENEZUELA

fgallego
02 de Julio del 2004
Por que no utilizas una secuencia de oracle???

RONALD
02 de Julio del 2004
Porque cuando hago esto:

Select sec_numero.nextval into vnumero from dual;

y no salvo ese numero de la secuencia queda en el aire.

y si entro a la forma 30 veces y no salvo la secuecia se me incrementa en 30 y la idea es que sea estrictamente un secuencia.

Gracias.

Rey
02 de Julio del 2004
y no puedes hacer la asignación de ese consecutivo al final del proceso.. cuando se haga el commit. y así el q realice el commit primero tendra la numeración y no tendrás problema con otro usuario..

Saludos..
de Venezuela