Oracle - INSERCION MASIVA EN UNA TABLA CON UN SOLA CADENA

 
Vista:

INSERCION MASIVA EN UNA TABLA CON UN SOLA CADENA

Publicado por ORACULO (3 intervenciones) el 27/04/2006 01:38:07
COMO PODEIS VER, HE BUSCADO MUCHO A CERCA DE LA INSERCIÓN DE VARIOS REGISTROS AL MISMO TIEMPO EN UNA SOLA TABLA, PERO NO HE HALLADO ALGO AL RESPECTO, LO QUE DESEO ES INSERTAR MEDIANTE UNA SOLA CADENA DE CARACTERES INSERTAR VARIOS REGISTROS EN UNA SOLA TABLA. TENGO UNA CADENA COMO LA Q SIGUE:

"INSERT INTO mitabla VALUES(1,'uno') INSERT INTO mitabla VALUES(2,'dos') INSERT INTO mitabla VALUES(3,'tres')"

ESTO FUNCIONA SIN PROBLEMAS CON SQL SERVER PERO ¿CON ORACLE, CÓMO PUEDO HACER ALGO SIMILAR?
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:INSERCION MASIVA EN UNA TABLA CON UN SOLA CADEN

Publicado por luisvie (1 intervención) el 27/04/2006 09:33:41
Yo estoy empezando con esto del Oracle, pero una posible solución es crear una función que te desglose la cadena en subcadenas INSERT y lanzar todas ellas acto seguido.

un saludo
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:INSERCION MASIVA EN UNA TABLA CON UN SOLA CADEN

Publicado por tasquero (3 intervenciones) el 27/04/2006 14:33:33
no se si es a esto a lo que te refieres, pero si te ayuda mejor

insert into tabla ( campo1,campo2)
as select campo1,campo2 from tabla;

depende de la versión necesitas el "as" o no.

o si es esto otro, en el sql*plus, ejecuta una select tal que asi

select 'insert into tabla (campo1,campo2)
values (' || ''''|| campo1||''''|| ','|| ||''''||campo2||''''||')
from cualquier tabla que te valga para sacarlos campos;

también se puede utilizar el excel de microsoft para estas cosas.
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:INSERCION MASIVA EN UNA TABLA CON UN SOLA CADEN

Publicado por ORACULO (2 intervenciones) el 27/04/2006 16:11:19
AGRADEZCO SU AYUDA, AUNQUE NO ES PRECISAMENTE LO QUE BUSCO. ME ESPECIFICO UN POCO MÁS:
SUCEDE QUE ESTOY TRABAJANDO CON JSP'S CON BD ORACLE, Y EN LA JSP MEDIANTE UN CICLO CREO UNA CADENACOMO LA SIGUIENTE:

String SQL="";
String Val1="",Val2="";
for(i=0;i=n;i++)
{
SQL=SQL+"INSERT INTO MiTabla VALUES("+Val1+",'"+Val2+"') ";
//Val1 y Val2 Tienen valores diferentes en cada pasada del ciclo
}
...
Y OBTENGO UNA CADENA COMO:
SQL="INSERT INTO MiTabla VALUES(1,'valor uno') INSERT INTO MiTabla VALUES(2,`valor2') INSERT INTO MiTabla VALUES(3,'tres') "

Y LO QUE QUIERO HACER ES LANZAR ESTE QUERY TAL COMO ESTÁ DE TAL FORMA QUE SE INSERTEN TODOS LOS REGISTROS EN LA TABLA CON UNA SOLA VISITA A LA BD Y EVITAR INSERTAR REGISTRO A REGISTRO.

ESPERO HAYA QUEDADO UN POCO MÁS CLARO.

AGRADEZCO MUCHO,ESPERO Y ME CONTESTEN.

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

RE:INSERCION MASIVA EN UNA TABLA CON UN SOLA CADEN

Publicado por juanpa (16 intervenciones) el 02/05/2006 17:14:38
Lo que tienes que hacer es un procedimiento almacenado, que agarre el string que formaste y lo empiece a desglosar y ejecutes la intrucción que tu deseas.

Por otro lado, en Oracle la sentencia seria algo comos sigue:

SQL=" BEGIN INSERT INTO MiTabla VALUES(1,'valor uno'); INSERT INTO MiTabla VALUES(2,`valor2'); INSERT INTO MiTabla VALUES(3,'tres'); END; "

si lo pruebas y te funciona bakan, sino tendras que hacelo como te explique arriba.

Para lo cual debes utilizar las intrucciones instr() y substr(), que te ven un cierto literal dentro de un string y te dan la posición y la otra te corta un string, obviamente debes meter esto dentro de un ciclo y terminar cuando ya no haya mas datos en el string. Recuerda ir guardando el resto del string en una variable para que puedas seguir con el ciclo.

Espero haberte ayudado.

Saludos
juanpa
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

PROBLEMA RESUELTO

Publicado por ORACULO (2 intervenciones) el 02/05/2006 17:47:10
LA SEGUNDA OPCION DE JUANPA SOLUCIONÓ MI PROBLEMA, NO INTENTÉ CON STORE PROCEDURES PERO SERÍA UNA BUENA PRÁCTICA DE PROGRAMACIÓN..

MUCHAS GRACIAS

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