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

Obtener el valor secuencia de una BBDD Oracle

Estas en el tema de Obtener el valor secuencia de una BBDD Oracle en el foro de Oracle en Foros del Web. Tengo tres tablas en una BBDD de Oracle, en la primera meto datos desde código Java con JDBC, hago el primer "executeUpdate" para la primera ...
  #1 (permalink)  
Antiguo 10/10/2008, 03:05
 
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 352
Antigüedad: 15 años, 6 meses
Puntos: 5
Obtener el valor secuencia de una BBDD Oracle

Tengo tres tablas en una BBDD de Oracle, en la primera meto datos desde código Java con JDBC, hago el primer "executeUpdate" para la primera tabla, en esta primera tabla ahí un campo que es autoincremental. Necesitaría el valor de este campo que se genera desde la BBDD, para poderlo meter en las siguiente dos tablas.

De momento lo he apañado con un commit de la tabla primera y luego una select con cierto valores, pero me gustaría que fuera cogiendo directamente ese valor.

Con "getPrimaryKeys" no funciona ya que según he leído no vale para Oracle.

Muchas gracias.
  #2 (permalink)  
Antiguo 10/10/2008, 19:36
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: Obtener el valor secuencia de una BBDD Oracle

"en esta primera tabla ahí un campo que es autoincremental"

en oracle hasta donde me llegan los conocimientos no existe el autoincremental, a lo mucho lo estaran haciendo mediante un trigger sobre la tabla, investiga como obtienen ese numero, si es por secuencia o por un max(campo) + 1

si es con una secuencia tal vez seleccionado el current value de la secuencia obtienes el valor, si es por trigger no se me ocurre otra que lo que ya hiciste, haciendo commit y seleccionando
__________________
Blogzote.com :-) Mi blog
  #3 (permalink)  
Antiguo 11/10/2008, 11:48
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: Obtener el valor secuencia de una BBDD Oracle

El current value te lo da si en la misma sesion has hecho un nextval, en caso contrario te salta un error.
  #4 (permalink)  
Antiguo 14/10/2008, 04:11
 
Fecha de Ingreso: marzo-2008
Ubicación: Euskadi
Mensajes: 64
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Obtener el valor secuencia de una BBDD Oracle

Hola,

aclarar que el current value lo que te da es el último valor obtenido por el usuario que lo solicita (de ahí, que sin hacer nextval no obtengas nada), por lo tanto no siempre va a dar el último valor (otro usuario ha podido hacer un nextval posterior y no lo vas a ver).

Por otra parte, la mejor manera de obtener el valor de un campo que se ha insertado/actualizado es mediante la cláusula RETURNING.

Un saludo.
  #5 (permalink)  
Antiguo 14/10/2008, 12:00
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: Obtener el valor secuencia de una BBDD Oracle

¿ puedes explicar que es eso de RETURNING ?
No lo conoco y el saber no ocupa lugar.
Saludos
  #6 (permalink)  
Antiguo 15/10/2008, 01:53
 
Fecha de Ingreso: marzo-2008
Ubicación: Euskadi
Mensajes: 64
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Obtener el valor secuencia de una BBDD Oracle

Hola,

básicamente permite obtener los datos insertados/actualizados/borrados de una tabla, es decir, como si hiciéramos una select de los registros que han sido afectados por inserción/actualización/borrado, pero sin tener que hacer la select, con la mejora de rendimiento que supone.

Para las insert y las update, por ejemplo, permite obtener los valores que realmente se han insertado en la tabla, es decir, si por ejemplo un trigger modifica lo que vamos a insertar, con el RETURNING INTO obtendremos lo que al final se ha guardado en el registro.

Para más información y ejemplos:

http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/returninginto_clause.htm
  #7 (permalink)  
Antiguo 15/10/2008, 18:09
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: Obtener el valor secuencia de una BBDD Oracle

muy buena tu aportación mutenro, no conocia esa clausula y queda perfecto para lo que necesita el iniciador del post, muchas cabezas piensan mejor que una.
__________________
Blogzote.com :-) Mi blog
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 05:40.