SoloCodigo

Bases de Datos => Oracle => Mensaje iniciado por: lugarda en Jueves 13 de Enero de 2011, 16:00

Título: devolver el valor de una secuencia
Publicado por: lugarda en Jueves 13 de Enero de 2011, 16:00
Hola a todos, estuve buscando la forma de recuperar el valor de la secuencia de una tabla (la cual uso como llave) , inmediatamente despues que ejecuto la sentencia INSERT.

Se me ocurrió hacerlo con un SELECT MAX(ID) FROM TABLA INTO :ULTIMO, pero me parece algo ineficiente. Si alguien tiene una forma mas efectiva para poder recuperar el ID (que es la secuencia de la tabla) , despues de hacer el insert, les agradezco mucho que me cuenten, seria de gran ayuda.

Buen dia.

Monica.
Título: Re: devolver el valor de una secuencia
Publicado por: Thanatos-chan en Viernes 14 de Enero de 2011, 14:49
si es una secuencia propiamente creada puedes usar:

Código: SQL
  1.  
  2. SELECT NOMBRESECUENCIA.CURRVAL FROM DUAL
  3.  
  4.  

sino, es como dices buscar el numero mas alto.
Título: Re:devolver el valor de una secuencia
Publicado por: aaiello en Jueves 18 de Agosto de 2011, 18:19
como dice la respuesta anterior la forma correcta es con currvar, pero lo de tomar el max puede o no ser ineficiente. Si tenes creado un indice cluster sobre ese campo entonces la performance será la misma en ambos casos, de lo contrario ahí podría verse afectada.