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

Insert select con order by

Estas en el tema de Insert select con order by en el foro de Bases de Datos General en Foros del Web. Estoy intentado realizar la siguiente consulta en ORACLE pero no me funciona. Supongo que no funciona por el order by. insert into tabla1 (campo1, campo2, ...
  #1 (permalink)  
Antiguo 05/02/2003, 10:09
 
Fecha de Ingreso: febrero-2003
Mensajes: 4
Antigüedad: 21 años, 2 meses
Puntos: 0
Exclamación Insert select con order by

Estoy intentado realizar la siguiente consulta en ORACLE pero no me funciona. Supongo que no funciona por el order by.

insert into tabla1 (campo1, campo2, campo3)
select secuencia.nextval, campo4, campo5
from tabla2
where campo6 ='Algo'
order by campo7

He ejecutado:

insert into tabla1 (campo1, campo2, campo3)
select secuencia.nextval, campo4, campo5
from tabla2
where campo6 ='Algo'

y funciona.

Es una llamada que hago desde una aplicación VB y no me da tiempo a hacer a estas alturas un paquete para crear un cursor e iterar, ya que tendría que cambiar también todas las llamadas desde el aplicativo.

Alguien me puede ayudar, hay alguna manera de hacer esa ejecución en un sola llamada desde VB?

Gracias.

P.D.: Estoy con el agua al cuello, así que agradeceré cualquier sugerencia, especialmente si son veloces.
  #2 (permalink)  
Antiguo 05/02/2003, 10:21
Avatar de vamp_02  
Fecha de Ingreso: febrero-2002
Ubicación: Santiago de Chile
Mensajes: 367
Antigüedad: 22 años, 2 meses
Puntos: 0
A ver, vamos viendo:

Codigo original:

insert into tabla1 (campo1, campo2, campo3)
select secuencia.nextval, campo4, campo5
from tabla2
where campo6 ='Algo'
order by campo7

Yo lo haria:

insert into tabla1 (campo1,campo2,campo3)
values (select secuencia.nextval as campo1, campo4, campo5
from tabla2)
where campo6='ALGO'
order by campo7

Ve y me cuentas
  #3 (permalink)  
Antiguo 05/02/2003, 10:24
 
Fecha de Ingreso: febrero-2003
Mensajes: 4
Antigüedad: 21 años, 2 meses
Puntos: 0
Nada, no funciona.

He probado jugando con el paréntesis final antes del where, antes del order by y después del order by.

Me da el mismo error que me da con la consulta original.

Gracias
  #4 (permalink)  
Antiguo 05/02/2003, 12:05
Avatar de vamp_02  
Fecha de Ingreso: febrero-2002
Ubicación: Santiago de Chile
Mensajes: 367
Antigüedad: 22 años, 2 meses
Puntos: 0
Tranqui, voy a probar y te cuento.
  #5 (permalink)  
Antiguo 05/02/2003, 12:42
 
Fecha de Ingreso: febrero-2003
Mensajes: 4
Antigüedad: 21 años, 2 meses
Puntos: 0
He encontrado una solución

insert into tabla1 (campo1, campo2, campo3)
select tmp.campo10, tmp.campo11, tmp.campo12 from
(
select secuencia.nextval campo10, campo4 campo11, campo5 campo12 from tabla2 where campo6 ='Algo'
) tmp
order by campo7
  #6 (permalink)  
Antiguo 05/02/2003, 13:22
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
Si quieres realizar una insercion de tuplas a traves de un SELECT debes utilizar el "order by" con un campo que estas obteniendo de la select.

Si mal no veo campo7 no esta en el select !!
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
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 22:33.