como leer un txt y grabar una tabla sql

11/07/2008 - 18:42 por Claudio | Informe spam
Hola grupo

tengo un txt, con los campos separados por "," , quiero ir leyendo esos
registros y
"cortando" c/campo ir grabando el campo equivalente de mi tabla. Puedo
hacerlo desde sql , es decir ir leyendo el txt e ir grabando la tabla, sin
usar BulkInsert o el bcp ??, porque con ambas opciones me encuentro con
limitacion como el formato del archivo.

gracias
Salu2

Claudio
"El hombre se hace viejo muy pronto,... y sabio, demasiado tarde."

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera (MVP)
11/07/2008 - 19:03 | Informe spam
Puede usar Data Integration Services (SS2000) o Integration Services (SS2005)
para resolver ese tipo de problemas. También puede hacer un programa que haga
la tarea, si usted es de los que se sienten cómodos programando.

Personalmente no intentaría usar T-SQL para hacer ese tipo de cosas.

Gustavo Larriera, Microsoft MVP
http://www.linkedin.com/in/gustavolarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Claudio" wrote:

Hola grupo

tengo un txt, con los campos separados por "," , quiero ir leyendo esos
registros y
"cortando" c/campo ir grabando el campo equivalente de mi tabla. Puedo
hacerlo desde sql , es decir ir leyendo el txt e ir grabando la tabla, sin
usar BulkInsert o el bcp ??, porque con ambas opciones me encuentro con
limitacion como el formato del archivo.

gracias
Salu2

Claudio
"El hombre se hace viejo muy pronto,... y sabio, demasiado tarde."



Respuesta Responder a este mensaje
#2 Claudio
11/07/2008 - 19:43 | Informe spam
Hola Gustavo,

mi intencion es resolverlo a traves de un Store, porque lo tengo hecho en
codigo
de VB6, pero es tan lento en procesar todos los registros (1.346.400) , lo
hago con ADO, abriendo el txt con Output ... for input... y luego cortando
los campos y grabando mi tabla, que por ello intento solucionarlo de otra
forma que sea mas agil.
Igual, gracias por la rta.

Claudio

"Gustavo Larriera (MVP)"
escribió en el mensaje
news:
Puede usar Data Integration Services (SS2000) o Integration Services
(SS2005)
para resolver ese tipo de problemas. También puede hacer un programa que
haga
la tarea, si usted es de los que se sienten cómodos programando.

Personalmente no intentaría usar T-SQL para hacer ese tipo de cosas.

Gustavo Larriera, Microsoft MVP
http://www.linkedin.com/in/gustavolarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Claudio" wrote:

Hola grupo

tengo un txt, con los campos separados por "," , quiero ir leyendo esos
registros y
"cortando" c/campo ir grabando el campo equivalente de mi tabla. Puedo
hacerlo desde sql , es decir ir leyendo el txt e ir grabando la tabla,
sin
usar BulkInsert o el bcp ??, porque con ambas opciones me encuentro con
limitacion como el formato del archivo.

gracias
Salu2

Claudio
"El hombre se hace viejo muy pronto,... y sabio, demasiado tarde."






Respuesta Responder a este mensaje
#3 Gustavo Larriera (MVP)
11/07/2008 - 20:15 | Informe spam
Si las lineas del texto son uniformes en cantidad de campos, usar BCP, BULK
INSERT o los Data Transformation Services es una buena opción.

Si las líneas son de formato variable, le sugiero lo siguiente: Primero
resuelva el paso de insertar todas las líneas de texto a filas de una tabla
(por ejemplo use BCP o BULK INSERT).

No se preocupe ahora por el formato de los datos, lea cada linea e insértela
tal cual en una tabla que tenga una columna para alojar la linea, cada linea
será una fila de la tabla).

Luego sí, programe un stored procedure que procese cada fila de la tabla y
obtenga los datos que están en la línea separados por comas. Un cursor puede
ser adecuado para su problema.


Gustavo Larriera, Microsoft MVP
http://www.linkedin.com/in/gustavolarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Claudio" wrote:

Hola Gustavo,

mi intencion es resolverlo a traves de un Store, porque lo tengo hecho en
codigo
de VB6, pero es tan lento en procesar todos los registros (1.346.400) , lo
hago con ADO, abriendo el txt con Output ... for input... y luego cortando
los campos y grabando mi tabla, que por ello intento solucionarlo de otra
forma que sea mas agil.
Igual, gracias por la rta.

Claudio

"Gustavo Larriera (MVP)"
escribió en el mensaje
news:
> Puede usar Data Integration Services (SS2000) o Integration Services
> (SS2005)
> para resolver ese tipo de problemas. También puede hacer un programa que
> haga
> la tarea, si usted es de los que se sienten cómodos programando.
>
> Personalmente no intentaría usar T-SQL para hacer ese tipo de cosas.
>
> Gustavo Larriera, Microsoft MVP
> http://www.linkedin.com/in/gustavolarriera
> Este mensaje se proporciona tal como es, sin garantías de ninguna clase.
>
>
>
> "Claudio" wrote:
>
>> Hola grupo
>>
>> tengo un txt, con los campos separados por "," , quiero ir leyendo esos
>> registros y
>> "cortando" c/campo ir grabando el campo equivalente de mi tabla. Puedo
>> hacerlo desde sql , es decir ir leyendo el txt e ir grabando la tabla,
>> sin
>> usar BulkInsert o el bcp ??, porque con ambas opciones me encuentro con
>> limitacion como el formato del archivo.
>>
>> gracias
>> Salu2
>>
>> Claudio
>> "El hombre se hace viejo muy pronto,... y sabio, demasiado tarde."
>>
>>
>>
>



Respuesta Responder a este mensaje
#4 Claudio
11/07/2008 - 20:28 | Informe spam
esa opcion me gusto mas, importar a una tabla y luego si , hacer codigo sql
para leer
dicha tabla y grabar la tabla necesaria. Lo pruebo y te aviso como me fue.

gracias
Claudio

"Gustavo Larriera (MVP)"
escribió en el mensaje
news:
Si las lineas del texto son uniformes en cantidad de campos, usar BCP,
BULK
INSERT o los Data Transformation Services es una buena opción.

Si las líneas son de formato variable, le sugiero lo siguiente: Primero
resuelva el paso de insertar todas las líneas de texto a filas de una
tabla
(por ejemplo use BCP o BULK INSERT).

No se preocupe ahora por el formato de los datos, lea cada linea e
insértela
tal cual en una tabla que tenga una columna para alojar la linea, cada
linea
será una fila de la tabla).

Luego sí, programe un stored procedure que procese cada fila de la tabla y
obtenga los datos que están en la línea separados por comas. Un cursor
puede
ser adecuado para su problema.


Gustavo Larriera, Microsoft MVP
http://www.linkedin.com/in/gustavolarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Claudio" wrote:

Hola Gustavo,

mi intencion es resolverlo a traves de un Store, porque lo tengo hecho en
codigo
de VB6, pero es tan lento en procesar todos los registros (1.346.400) ,
lo
hago con ADO, abriendo el txt con Output ... for input... y luego
cortando
los campos y grabando mi tabla, que por ello intento solucionarlo de otra
forma que sea mas agil.
Igual, gracias por la rta.

Claudio

"Gustavo Larriera (MVP)"
escribió en el mensaje
news:
> Puede usar Data Integration Services (SS2000) o Integration Services
> (SS2005)
> para resolver ese tipo de problemas. También puede hacer un programa
> que
> haga
> la tarea, si usted es de los que se sienten cómodos programando.
>
> Personalmente no intentaría usar T-SQL para hacer ese tipo de cosas.
>
> Gustavo Larriera, Microsoft MVP
> http://www.linkedin.com/in/gustavolarriera
> Este mensaje se proporciona tal como es, sin garantías de ninguna
> clase.
>
>
>
> "Claudio" wrote:
>
>> Hola grupo
>>
>> tengo un txt, con los campos separados por "," , quiero ir leyendo
>> esos
>> registros y
>> "cortando" c/campo ir grabando el campo equivalente de mi tabla. Puedo
>> hacerlo desde sql , es decir ir leyendo el txt e ir grabando la tabla,
>> sin
>> usar BulkInsert o el bcp ??, porque con ambas opciones me encuentro
>> con
>> limitacion como el formato del archivo.
>>
>> gracias
>> Salu2
>>
>> Claudio
>> "El hombre se hace viejo muy pronto,... y sabio, demasiado tarde."
>>
>>
>>
>






Respuesta Responder a este mensaje
#5 Salvador Ramos
11/07/2008 - 23:52 | Informe spam
De todas formas no dejes de mirar BCP y BULK INSERT como te indicó Gux,
posiblemente te ahorres esa tabla intermedia.

Un saludo
Salvador Ramos
Solid Quality Mentors (http://www.solidq.com)

www.helpdna.net (información sobre SQL Server y Microsoft .Net)
Visita mi nuevo blog: www.sqlserversi.com


"Claudio" escribió en el mensaje
news:%
esa opcion me gusto mas, importar a una tabla y luego si , hacer codigo
sql para leer
dicha tabla y grabar la tabla necesaria. Lo pruebo y te aviso como me fue.

gracias
Claudio

"Gustavo Larriera (MVP)"
escribió en el mensaje
news:
Si las lineas del texto son uniformes en cantidad de campos, usar BCP,
BULK
INSERT o los Data Transformation Services es una buena opción.

Si las líneas son de formato variable, le sugiero lo siguiente: Primero
resuelva el paso de insertar todas las líneas de texto a filas de una
tabla
(por ejemplo use BCP o BULK INSERT).

No se preocupe ahora por el formato de los datos, lea cada linea e
insértela
tal cual en una tabla que tenga una columna para alojar la linea, cada
linea
será una fila de la tabla).

Luego sí, programe un stored procedure que procese cada fila de la tabla
y
obtenga los datos que están en la línea separados por comas. Un cursor
puede
ser adecuado para su problema.


Gustavo Larriera, Microsoft MVP
http://www.linkedin.com/in/gustavolarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Claudio" wrote:

Hola Gustavo,

mi intencion es resolverlo a traves de un Store, porque lo tengo hecho
en
codigo
de VB6, pero es tan lento en procesar todos los registros (1.346.400) ,
lo
hago con ADO, abriendo el txt con Output ... for input... y luego
cortando
los campos y grabando mi tabla, que por ello intento solucionarlo de
otra
forma que sea mas agil.
Igual, gracias por la rta.

Claudio

"Gustavo Larriera (MVP)"
escribió en el mensaje
news:
> Puede usar Data Integration Services (SS2000) o Integration Services
> (SS2005)
> para resolver ese tipo de problemas. También puede hacer un programa
> que
> haga
> la tarea, si usted es de los que se sienten cómodos programando.
>
> Personalmente no intentaría usar T-SQL para hacer ese tipo de cosas.
>
> Gustavo Larriera, Microsoft MVP
> http://www.linkedin.com/in/gustavolarriera
> Este mensaje se proporciona tal como es, sin garantías de ninguna
> clase.
>
>
>
> "Claudio" wrote:
>
>> Hola grupo
>>
>> tengo un txt, con los campos separados por "," , quiero ir leyendo
>> esos
>> registros y
>> "cortando" c/campo ir grabando el campo equivalente de mi tabla.
>> Puedo
>> hacerlo desde sql , es decir ir leyendo el txt e ir grabando la
>> tabla,
>> sin
>> usar BulkInsert o el bcp ??, porque con ambas opciones me encuentro
>> con
>> limitacion como el formato del archivo.
>>
>> gracias
>> Salu2
>>
>> Claudio
>> "El hombre se hace viejo muy pronto,... y sabio, demasiado
>> tarde."
>>
>>
>>
>










Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida