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

Problema DTSX

Estas en el tema de Problema DTSX en el foro de SQL Server en Foros del Web. Buenas, Tengo un problema, ya que estoy realizando una inserción masiva en una tabla de una base de datos mediante DTSX. El problema es el ...
  #1 (permalink)  
Antiguo 28/09/2010, 07:32
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 9 años, 3 meses
Puntos: 0
Problema DTSX

Buenas,

Tengo un problema, ya que estoy realizando una inserción masiva en una tabla de una base de datos mediante DTSX. El problema es el siguiente: leo un TXT, el cual tiene datos los cuales tengo que insertar en columnas que aun no están creadas en la tabla de la base de datos, por lo que no puedo enlazarlas en el DTSX.

¿Cómo puedo solucionarlo?

Si no os ha quedado claro os lo puedo explicar, pero por favor ayudadme.

Un saludo y gracias por todo
  #2 (permalink)  
Antiguo 28/09/2010, 08:21
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.950
Antigüedad: 14 años, 2 meses
Puntos: 39
Respuesta: Problema DTSX

Mejor usa la funcion BULK INSERT, y crea una tabla que tenga una columna varchar(8000) donde insertaras las filas de tu txt.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 28/09/2010, 08:43
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.329
Antigüedad: 11 años, 8 meses
Puntos: 606
Respuesta: Problema DTSX

O directamente, vas al gestor de SQL Server y le das a importar datos-->Fichero de texto.
__________________
Aviso: No se resuelven dudas por MP!
  #4 (permalink)  
Antiguo 29/09/2010, 02:04
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Problema DTSX

Gracias por las respuestas,

La cuestión es que necesito que se ejecute cada 15 minutos y es probable que lea al menos 3 ficheros TXT diferentes, lo cual creo que agrava la situación.
He leido algo de parámetros, bucles FOREACH pero no tengo ni idea, ya que no encuentro ejemplos.
Si alguien puede darme alguna solución, se lo agradecería.

Muchas gracias
  #5 (permalink)  
Antiguo 29/09/2010, 02:22
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.329
Antigüedad: 11 años, 8 meses
Puntos: 606
Respuesta: Problema DTSX

Entonces efectivamente necesitas usar un DTS y un job para ejecutarlo cada 15 minutos. Lo de los 3 ficheros no es problema ya que puedes hacer varias tareas en paralelo dentro de un mismo DTS. Nosotros precisamente tenemos un sistema que hace eso: lee el contenido de 3 ficheros que estan en 3 maquinas diferentes cada 'x' tiempo y lo inserta en la BBDD. Así que es factible :)
__________________
Aviso: No se resuelven dudas por MP!
  #6 (permalink)  
Antiguo 29/09/2010, 05:50
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Problema DTSX

Gracias por la respuesta,

Voy a ver si me explico mejor, y si me podeis ayudar bien, si no me tiraré por la ventana.

Cada 15 minutos llegan por ejemplo 4 ficheros TXT.
Gracias a uno de esos ficheros y con un procedimiento almacenado creo "n" columnas en una tabla que tengo ya creada.
Posteriormente tengo los 3 ficheros restantes los cuales tienen datos que van a ir en esas columnas, con la cabecera de la columna correspondiente, por ejemplo "NUM_TELEFONO".
Ahora bien, evidentemente mi DTSX no sabe como se llaman las columnas creadas en la tabla de la base de datos, por lo que a la hora de especificar las asignaciones en el destino de datos no se realiza dicha asignación, ya que el DTSX sabrá que del TXT obtiene datos de una columna llamada "NUM_TELEFONO" pero no sabe si en la tabla asignada existe dicha columna o no.

¿Alguien sabe como solucionarlo?

Gracias
  #7 (permalink)  
Antiguo 29/09/2010, 09:10
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.950
Antigüedad: 14 años, 2 meses
Puntos: 39
Respuesta: Problema DTSX

Si el orden de la columnas estan de acuerdo al orden de los datos, entonces como te dije arriba, puedes hacerlo con un BULK INSERT.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #8 (permalink)  
Antiguo 29/09/2010, 13:30
 
Fecha de Ingreso: febrero-2009
Mensajes: 312
Antigüedad: 10 años, 7 meses
Puntos: 4
Respuesta: Problema DTSX

Otra posible solución:

Podría ser a través de linked server y realizar el insert en tablas temporales sin necesidad de saber si existe el campo...

select * into #tabletemp
from openquery (LinkedServer, opciones TXT...)

Saludos
  #9 (permalink)  
Antiguo 30/09/2010, 01:28
 
Fecha de Ingreso: junio-2010
Mensajes: 134
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Problema DTSX

Gracias a todos por contestar.

Probaré con Bulk Insert a ver que pasa, ya que el otro método no tengo ni idea.

Gracias

Etiquetas: bulk, dts, importar, insert
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:55.