SQL - Importar a una tabla SQL un archivo de texto fijo

   
Vista:

Importar a una tabla SQL un archivo de texto fijo

Publicado por Claudio Martinez (5 intervenciones) el 17/08/2010 18:27:45
Tengo SQL Server 2005. No cuento con Integration Services (ETS). Necesito importar a una tabla un archivo txt de ancho fijo es decir no existen delimitadores.

Estoy probando con LOAD DATA INFILE Path INTO TABLE name_table (data1 position (1:5), data2 position (6:15) ) pero me dá error en el Path.

Pongo las barras invertidas, normales, encierro el path entre comillas, apóstrofes, etc. pero no pasa nada.

LOAD DATA INFILE es para SQL Server o para MySQL?

Gs. por pla 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

RE:Importar a una tabla SQL un archivo de texto fi

Publicado por Hubert (98 intervenciones) el 17/08/2010 23:32:45
Usa el DTS entonces (Data Transformation Services ) y crea un activex para tratar las columnas(antes un poco de código).

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:Importar a una tabla SQL un archivo de texto fi

Publicado por Claudio Martinez (5 intervenciones) el 18/08/2010 16:16:54
Hola Hubert. El problema es que en mi trabajo no está instalado y por eso me veo obligado a usar una sentencia. Ayer me pasé todo el día buscando lo que necesito y no hay caso. Todas las importaciones están vinculadas a archivos delimitados. No es mi caso. Sigo con el problema.
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:Importar a una tabla SQL un archivo de texto fi

Publicado por Claudio Martinez (5 intervenciones) el 25/08/2010 15:58:58
Ok Hubert. veré qué hago. Gs. por la ayuda.
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:Importar a una tabla SQL un archivo de texto fi

Publicado por Leonardo Josue (878 intervenciones) el 18/08/2010 17:07:44
Buenos días Claudio, dos cosas primero, si no mal recuerdo la instrucción LOAD DATA INFILE corresponde a MySQL, no a SQL Server.

Ahora bien, para poder leer la información de un archivo de texto y cargarla en una tabla de SQL Server, puedes hacer uso de las instucciones OPENDATASOURCE y BULK INSERT. Te soy sincero no recuerdo muy bien la sintaxis, más o menos así:

SELECT * INTO TuTablaEnSQLServer
FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source="C:\";Extended properties=''TEXT;HDR=YES;FMT=FixedLength''')..."TuArchivoDeTexto.txt"

FMT=FixedLength es para denotar que se trata de un archivo con tamaño de columnas fija

Puede ser que sea necesario la utilización de un archivo de esquema (SCHEMA.INI) donde especifiques el tamaño definido para cada una columna.

El caso de BULK Insert podrías utilizar un archivo de formato. No he tenido necesidad de utilizar esta instrucción, sinceramente siempre me he inclinado por utilizar DTS's, pero como mencionas que no los puedes utilizar pues te paso del dato.

Te agrego algunas páginas donde puedes encontrar más información de utilidad.

http://technet.microsoft.com/es-es/library/ms178129.aspx
http://technet.microsoft.com/en-us/library/ms178129.aspx
(Para encontrar información acerca de Bulk Insert y los archivos de formato)

http://msdn.microsoft.com/en-us/library/ms709353(VS.85).aspx
(para ver el uso de archivos schema.ini)

http://www.mvp-access.es/softjaen/articulos/texto/jet_text_isam.htm
http://www.mvp-access.es/softjaen/articulos/excel/ado_dao_excel.htm#Index3
(Información muy completa acerca del uso de archivos de texto y los problemas que puedes encontrar)
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:Importar a una tabla SQL un archivo de texto fi

Publicado por Claudio Martinez (5 intervenciones) el 19/08/2010 11:22:28
Leonardo. Es correcto lo que mencionás sobre el LOAD DATA es de MySQL. Todo lo que vi de BULK INSERT o BCP nada pero nada, trataba sobre archivos de ancho fijo. De todos modos voy a ver lo del OPENDATASOURCE pero como te digo, todos los ejemplos dando vuelta por internet son con texto delimitado. Asi cualquiera.jajajaj Un abrazo. Seguiré 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:Importar a una tabla SQL un archivo de texto fi

Publicado por Leonardo Josue (878 intervenciones) el 19/08/2010 16:52:06
Hola de Nuevo Claudio:

Como te comenté en el post parado, creo que vas a tener que hacer uso de archivos de formato (SCHEMA.INI o .fmt)

http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=46473

Checa esta liga, ahí hacen uso de un archivo de formato donde especifican la longitud de cada columna, creo que te puede servir.

Saludos y buena suerte
Leo.
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:Importar a una tabla SQL un archivo de texto fi

Publicado por Claudio Martinez (5 intervenciones) el 20/08/2010 17:48:33
Gracias Leo. Se ve interesante y creo que encajará justo. Lo que sí (por si alguien lee este post), descubrí en el Management Studio (en el enlace que vos das mencionan algo) que a diferencia de la versión 2000, en esta haciendo click derecho sobre la DB (no la tabla), vas a Task y ahí figura la posibilidad de importar datos a la base y tabla que uno quiera. Lo descubrí tarde. En fin. Muchas gracias por la ayuda. Un abraozo.
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