Oracle - INSERTAR 3 FILAS DE DOS TABLAS en UN solo CAMPO DE OTRA TABLA

 
Vista:
sin imagen de perfil

INSERTAR 3 FILAS DE DOS TABLAS en UN solo CAMPO DE OTRA TABLA

Publicado por antoine (2 intervenciones) el 11/08/2017 17:53:10
Hola comunidad oracle.

Quiero insertar una fila de una primer tabla y dos filas de una de segunda tabla, y son insertadas en una tercera tabla pero en un solo campo.
El campo recibe las tres filas completas.
El campo status recibe las 3 filas

Tengo el siguiente error:
ORA-01427: la subconsulta de una sola fila devuelve más de una fila

Cómo inserto las 3 filas en un solo campo?

1
2
3
4
5
INSERT INTO tablac3
(historico, iduno, codigouno, numero, clave, nombreEjecutivo, fecha, modo, status )
VALUES
(lasecuencia.nextval, 22, 'TEST', 'qaz123', 'edc456', 'paquita', '11/06/2017', 'rfv',
(select C.Nombre from tablita c, tablota p WHERE c.identificador = 5 AND p.identificador = 5) );

ORA-01427: la subconsulta de una sola fila devuelve más de una fila

este select funciona aqui, pero ya no funciona en el insert de arriba
1
select * from tablita c, tablota p WHERE c.identificador = 5 AND p.identificador = 5;

Gracias por su pronta ayuda
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

INSERTAR 3 FILAS DE DOS TABLAS en UN solo CAMPO DE OTRA TABLA

Publicado por José (17 intervenciones) el 14/08/2017 14:36:25
Te faltó relacionar la tabla tablita c , tablota p con sus identificadores que seria c.identificador = p.identificador


Saludos
Espero que te sirva!!
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
sin imagen de perfil
Val: 499
Oro
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

INSERTAR 3 FILAS DE DOS TABLAS en UN solo CAMPO DE OTRA TABLA

Publicado por Rafael (328 intervenciones) el 16/08/2017 09:33:03
Hola:

El mensaje de error es MUY CLARO, estas devolviendo MAS de UNA fila en una sentencia que espera UNA y SOLO UNA fila...

Ahora por otro lado lo que te comenta José es muy cierto, NO haces un JOIN entre tablita c y tablota p entonces pareciera que no necesitas tablota p....

Voy a suponer que es correcto lo que haces (pero lo dudo mucho) ¿cuantos registros obtienes? cuando haces esto:
1
select * from tablita c, tablota p WHERE c.identificador = 5 AND p.identificador = 5;

Ahora por que no pruebas insertar asi:
1
2
3
4
INSERT INTO tablac3
(historico, iduno, codigouno, numero, clave, nombreEjecutivo, fecha, modo, status)
select lasecuencia.nextval, 22, 'TEST', 'qaz123', 'edc456', 'paquita', '11/06/2017', 'rfv',
C.Nombre from tablita c, tablota p WHERE c.identificador = 5 AND p.identificador = 5;

De esta forma te deberia de insertar tantos registros como obtengas de la consulta.

Saludos
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