Oracle - usar secuencias en insert o select

 
Vista:

usar secuencias en insert o select

Publicado por Martin (2 intervenciones) el 20/01/2009 14:11:30
Hola, estoy trabajando en una bd Oracle 11g
estoy tratando de hacer un select de este tipo
select * from tabla where id=nombreSecuencia.currval
pero me parece que no se puede hacer, hay aguna forma e emular este comportamiento?
tambien quiero hacer algo parecido en un insert, y usar currval como uno de los valores de un campo, pero me saltan errores.
Si hago esto
select * from ctacte where obligacion_id=obligacion_sec.currval;
me dice: ORA-02287: número de secuencia no permitido aquí
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:usar secuencias en insert o select

Publicado por Gustavo (8 intervenciones) el 21/01/2009 04:03:36
No te compliques la vida declara una variable
y a esa variable asignale
miVariable:=nombreSecuencia.currval
y puedes usar en cualquier statement miVariable
Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:usar secuencias en insert o select

Publicado por Martin (2 intervenciones) el 21/01/2009 14:36:05
claro, el tema es que las consultas las hago desde una aplicacion, por lo tanto solo me comunico con la bd por medio de SQL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:usar secuencias en insert o select

Publicado por Sergio (79 intervenciones) el 04/03/2009 06:27:14
Amigo te recomiendo que leas un poquito la documentación de Oracle 11g, sin duda la más avanzada base de datos de Oracle...

INSERT INTO tabla (id, campo1, campo2)
VALUES (seq.nextval, 'VALOR1', 'VALOR2')
RETURNING id INTO :valor_secuencia;

con la instrucción anterior no necesitas hacer un SELECT a la secuencia, como ves pasas la secuencia en automático en el mismo INSERT y retornas el valor que te haya dado en la variable :VALOR_SECUENCIA.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar