Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Obtener ultimo registro (ID) que fué Insertado (Insert)

Estas en el tema de Obtener ultimo registro (ID) que fué Insertado (Insert) en el foro de Oracle en Foros del Web. Hola foreros. Soy nuevo en Oracle. Después de realizar un Insert, necesito obtener el último valor que fué creado y grabada. En realidad es de ...
  #1 (permalink)  
Antiguo 18/02/2013, 01:08
Avatar de ghidalgoram  
Fecha de Ingreso: marzo-2008
Ubicación: Costa Rica
Mensajes: 446
Antigüedad: 16 años, 8 meses
Puntos: 7
Pregunta Obtener ultimo registro (ID) que fué Insertado (Insert)

Hola foreros.
Soy nuevo en Oracle.

Después de realizar un Insert, necesito obtener el último valor que fué creado y grabada. En realidad es de la llave primaria y es autonumérico.

La idea es algo como esto:


insert into mitabla (...) values (...)

Después obtener inmediatamente ese valor para guardarlo por medio de un Update.

He leído varias opciones en Internet. Sin embargo deseo saber si Oracle ofrece un mecanismo para obtener ese valor que debe ser actualizado en uno de los campos de la tabla.

Gracias. Agradezco la ayuda.
__________________
Loading...
  #2 (permalink)  
Antiguo 19/02/2013, 10:40
Avatar de ghidalgoram  
Fecha de Ingreso: marzo-2008
Ubicación: Costa Rica
Mensajes: 446
Antigüedad: 16 años, 8 meses
Puntos: 7
Respuesta: Obtener ultimo registro (ID) que fué Insertado (Insert)

Amigos, alguna idea ?
Gracias.
__________________
Loading...
  #3 (permalink)  
Antiguo 19/02/2013, 11:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Obtener ultimo registro (ID) que fué Insertado (Insert)

Tengo la impresión de que estás confundiendo Oracle con SQL Server, MySQL o PostgreSQL.
En Oracle no existen las columnas autonuméricas. Par apoder cubrir esa funcionalidad es que existen las SEQUENCES, que son objetos de base de datos usados para realizar numeraciones secuenciales, en aquellos casos en que se necesita realizar este tipo de cosas.
Las SEQUENCES no dependen de tablas o columnas, y tienen un método que recupera el valor actual (.CURRVAL) que la misma posee en un momento dado.
Esto último implica que se debe hacer incrementar directamente el valor del objeto invocando su método .NEXTVAL, sea directamente en el INSERT o previamente en una sentencia.

¿Se entiende?

Busca el uso de sequences en Oracle.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 19/02/2013, 16:37
 
Fecha de Ingreso: noviembre-2012
Ubicación: Cali - Colombia
Mensajes: 46
Antigüedad: 12 años
Puntos: 0
Respuesta: Obtener ultimo registro (ID) que fué Insertado (Insert)

En oracle el modelo es asi

insert into mitabla values (...)

y la otra cosa es que cuando dices

"Después obtener inmediatamente ese valor para guardarlo por medio de un Update."

Se obtiene es con un Select, el update es para actualizar.

En mi caso usando solo el Select * from Tabla;

Obteniendo los datos asi, si no le pones los metodos de first, next o last. Siempre te traerá el ultimo.

Etiquetas: insert
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:20.