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

Inserción de datos duplicados (Procedimiento + cursor)

Estas en el tema de Inserción de datos duplicados (Procedimiento + cursor) en el foro de Oracle en Foros del Web. Hola, Actualmente estoy insertando datos en una tabla con la siguiente instrucción: truncate table ESQUEMA.TABLA1; INSERT INTO ESQUEMA.TABLA1( CATEGORIA, SUBCATEGORIA, PRODUCTO, ID, TIPO, SINTOMA1, SINTOMA2, ...
  #1 (permalink)  
Antiguo 08/06/2011, 09:45
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Inserción de datos duplicados (Procedimiento + cursor)

Hola,

Actualmente estoy insertando datos en una tabla con la siguiente instrucción:

truncate table ESQUEMA.TABLA1;
INSERT
INTO
ESQUEMA.TABLA1(
CATEGORIA,
SUBCATEGORIA,
PRODUCTO,
ID,
TIPO,
SINTOMA1,
SINTOMA2,
SINTOMA3,
SINTOMA4,
SINTOMA5,
SINTOMA6,
SINTOMA7,
SINTOMA8,
SINTOMA9,
SINTOMA10,
SINTOMA11,
SINTOMA12,
SINTOMA13,
SINTOMA14,
SINTOMA15,
SINTOMA16,
SINTOMA17,
SINTOMA18,
SINTOMA19,
SINTOMA20,
RESOLUCION1,
RESOLUCION2,
RESOLUCION3,
RESOLUCION4,
RESOLUCION5,
RESOLUCION6,
RESOLUCION7,
RESOLUCION8,
RESOLUCION9,
RESOLUCION10,
RESOLUCION11,
RESOLUCION12,
RESOLUCION13,
RESOLUCION14,
RESOLUCION15,
RESOLUCION16,
RESOLUCION17,
RESOLUCION18,
RESOLUCION19,
RESOLUCION20)
SELECT
INCIDENCIAS.CATEGORIA ,
INCIDENCIAS.SUBCATEGORIA ,
INCIDENCIAS.PRODUCTO ,
INCIDENCIAS.ID,
INCIDENCIAS.TIPO,
REPLACE(SUBSTR(SINTOMA,1,5),CHR(10),''),
REPLACE(SUBSTR(SINTOMA,6,6),CHR(10),''),
REPLACE(SUBSTR(SINTOMA,12,6),CHR(10),''),
REPLACE(SUBSTR(SINTOMA,18,6),CHR(10),''),
REPLACE(SUBSTR(SINTOMA,24,6),CHR(10),''),
REPLACE(SUBSTR(SINTOMA,30,6),CHR(10),''),
REPLACE(SUBSTR(SINTOMA,36,6),CHR(10),''),
REPLACE(SUBSTR(SINTOMA,42,6),CHR(10),''),
REPLACE(SUBSTR(SINTOMA,48,6),CHR(10),''),
REPLACE(SUBSTR(SINTOMA,54,6),CHR(10),''),
REPLACE(SUBSTR(SINTOMA,60,6),CHR(10),''),
REPLACE(SUBSTR(SINTOMA,66,6),CHR(10),''),
REPLACE(SUBSTR(SINTOMA,72,6),CHR(10),''),
REPLACE(SUBSTR(SINTOMA,78,6),CHR(10),''),
REPLACE(SUBSTR(SINTOMA,84,6),CHR(10),''),
REPLACE(SUBSTR(SINTOMA,90,6),CHR(10),''),
REPLACE(SUBSTR(SINTOMA,96,6),CHR(10),''),
REPLACE(SUBSTR(SINTOMA,102,6),CHR(10),''),
REPLACE(SUBSTR(SINTOMA,108,6),CHR(10),''),
REPLACE(SUBSTR(SINTOMA,114,6),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,1,5),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,6,6),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,12,6),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,18,6),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,24,6),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,30,6),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,36,6),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,42,6),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,48,6),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,54,6),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,60,6),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,66,6),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,72,6),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,78,6),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,84,6),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,90,6),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,96,6),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,102,6),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,108,6),CHR(10),''),
REPLACE(SUBSTR(RESOLUCION,114,6),CHR(10),'')
FROM
ST.INCIDENCIAS;



No se como hacerlo para que se inserten todos los campos duplicados excepto los campos SINTOMA y RESOLUCION, de esta manera me ahorraria tener 20 campos para SINTOMA y 20 campos para RESOLUCION.

Pasaria a tener:

ID, TIPO, CATEGORIA, SUBCATEGORIA, PRODUCTO, SINTOMA, RESOLUCION

Y no como lo tengo actualmente:

ID, TIPO, CATEGORIA, SUBCATEGORIA, PRODUCTO, SINTOMA1, SINTOMA2, SINTOMA3.........

Me han comentado que con un procedimiento y un cursor podria realizarlo, me podeis hechar una mano, gracias!!!!!
  #2 (permalink)  
Antiguo 08/06/2011, 09:55
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Inserción de datos duplicados (Procedimiento + cursor)

El fin seria tener un cosa mas o menos como esta:

ID, TIPO, CATEGORIA, SUBCATEGORIA, PRODUCTO, SINTOMA, RESOLUCION

1,A,B,C,D,S1,R1 - (SE INSERTAN DATOS)

1,A,B,C,D,S2,R2 - (SE DUPLICA EL ID, TIPO, CATEGORIA, SUBCATEGORIA, PERO NO EL SINTOMA Y RESOLUCION)

1,A,B,C,D,S3,R3

2,B,C,D,E,S1,R1

2,B,C,D,E,S2,R3

Gracias!!!
  #3 (permalink)  
Antiguo 09/06/2011, 13:28
 
Fecha de Ingreso: enero-2007
Ubicación: Cali - Valle
Mensajes: 135
Antigüedad: 17 años, 3 meses
Puntos: 4
Respuesta: Inserción de datos duplicados (Procedimiento + cursor)

Hola.

Yo creo que tienes un mal diseño de la tabla, ya que el campo ID lo debes de estar usando como llave primaria o indice y al ser alguna de las dos la BD no te dejara ingresar los datos, ademas creo que tu Id se debe de referir a un Id de Enfermedad, no de la tabla, en ese caso debes de crear un ID propio para la tabla y colocarla como llave primaria, eliminando la llave primaria existente, asi podras ingresar los Id de enfermedad repetidos.


Saludos.

Etiquetas: cursor, duplicados, inserción, procedimiento
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 14:52.