Oracle - INSERT CON SELECT

 
Vista:

INSERT CON SELECT

Publicado por webness (11 intervenciones) el 02/03/2009 21:04:17
Muy buenas las tengan.

Tengo una tabla X con 4 campos y una tabla Y con 3 campos, necesito llenar la tabla X con los valores de la tabla Y, y el cuarto campo otro valor.

Si la cantidad de campos de ambas tablas fueran iguales no habria problema en hacar

INSERT INTO X SELECT a,b,c FROM Y

pero ahora necesito que aparte de los valores de a,b,c toca insertar un cuarto valor que ya tengo calculado.

he intentado esto:

INSERT INTO X (SELECT a,b,c FROM Y),20
INSERT INTO X (SELECT a,b,c FROM Y,20)
INSERT INTO X (SELECT a,b,c,20 FROM Y)
INSERT INTO X (SELECT a,b,c FROM Y),(SELECT 20 FROM DUAL)

Como puedo insertar este valor de 20 a mi tabla X y que a la ves pueda usar el resto de campos del select????
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:INSERT CON SELECT

Publicado por webness (11 intervenciones) el 02/03/2009 21:06:04
Muy buenas las tengan.

Tengo una tabla X con 4 campos y una tabla Y con 3 campos, necesito llenar la tabla X con los valores de la tabla Y, y el cuarto campo otro valor.

Si la cantidad de campos de ambas tablas fueran iguales no habria problema en hacar

INSERT INTO X SELECT a,b,c FROM Y

pero ahora necesito que aparte de los valores de a,b,c toca insertar un cuarto valor que ya tengo calculado.

he intentado esto:

INSERT INTO X (SELECT a,b,c FROM Y),20
INSERT INTO X (SELECT a,b,c FROM Y,20)
INSERT INTO X (SELECT a,b,c,20 FROM Y)
INSERT INTO X (SELECT a,b,c FROM Y),(SELECT 20 FROM DUAL)

Como puedo insertar este valor de 20 a mi tabla X y que a la ves pueda usar el resto de campos del select????
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:INSERT CON SELECT

Publicado por Pedro (38 intervenciones) el 03/03/2009 09:35:03
Hola buenos dias

A ver una de las cosas que expones no es del todo cierta.. tu puedes insertar en una tabla de cuatro campos una de tres, es mas es mas optimo y mejor hacerlo asi, para ello debes especificar los campos en la insert se te kedaria una cosa asi:
INSERT INTO X ( campo 1, campo2, campo3)
SELECT a,b,c FROM Y

Si el valor es una constante puedes hacer esto

INSERT INTO X ( campo 1, campo2, campo3,campo4)
SELECT a,b,c,20 FROM Y

Sel cuarto valor es calculado,deberias crearte una función que te lo calcule mas o menos de la siguiente forma

INSERT INTO X ( campo 1, campo2, campo3,campo4)
SELECT a,b,c,funcion_calculo(a) FROM Y

El hecho de especificar los campos siempre es mejor, ya que en el supuesto caso de que en algun momento pueda cambiar la tabla siempre funcionará la insert, de la otra forma no, por lo que te recomiendo que por norma siempre los especifiques, te ahorraras muchos problemas.

Si necesitas algo mas no dudes en preguntar.
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:INSERT CON SELECT

Publicado por Martín (1 intervención) el 09/09/2009 13:54:58
MIL GRACIAS!!!

Es justo lo que estaba buscando!
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:INSERT CON SELECT

Publicado por Luis (1 intervención) el 02/11/2016 15:06:59
Hola,

tambien podrías hacer algo asi:

1
INSERT INTO X SELECT a,b,c,(SELECT 20 FROM DUAL) d FROM Y
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:INSERT CON SELECT

Publicado por Gineth Rincón (1 intervención) el 25/10/2019 21:35:46
Si la constante es un VARCHAR como puedo colocarla en el SELECT?

Gracias.
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:INSERT CON SELECT

Publicado por Carlos Portillo (1 intervención) el 06/12/2019 16:33:15
INSERT INTO X SELECT a,b,c,'valor_char',20,SYSDATE d FROM Y
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