PDA

Ver la Versión Completa : Importar a SQL desde Archivo de Texto


erasmorc
01-06-2005, 21:01:47
Buenas tardes,

Tengo el siguiente problema, tengo un archivo Saldos.Txt y quiero insertarlo en una tabla de una BD de SQL llamada SaldosCliente que tiene los campos

Codigo Char 10
Nombre Char 60
Balance Float 8

el arhivo tiene esta estructura

"1000002","AAA DOMIVEN CARGO S. A."," 0.00"

Como ven los campos estan delimitados por comillas y separados por comas
como puedo lograr esto con sentencias de SQL Server 2000

Gracias anticipadas

jachguate
01-06-2005, 23:25:54
He movido el hilo desde SQL a MSSQL server por no corresponder con la temática del foro original.

Hasta luego.

;)

__hector
02-06-2005, 01:01:28
crea en el enterprise manager de sql server un dts que te permita importar los datos desde el archivo de texto hacia una tabla

sabes como?

erasmorc
02-06-2005, 17:21:22
Buenos dias,


Si con el DTS se como hacerlo, fijate que he explicado que quiero hacerlo con sentencias de SQL, imaginate que quiera hacerlo desde el query analizer, si puede alguien ayudarme se lo agradeceria mucho.

Slds,

jachguate
02-06-2005, 17:31:47
SQL no incluye sentencias para realizar este tipo de operaciones. A la fecha, no conozco ningún motor que haga un "añadido" al lenguaje para las mismas.

erasmorc
02-06-2005, 17:44:14
Buenos dias,


Yo tampoco se si existe, pero parto del hecho de que si se puede con el DTS y con un lenguaje como Foxpro puedes hacer con una instruccion, entiendo que con el lenguaje de SQL con alguna variante del comando Insert Into podria hacerse, seguire investigando. Gracias.

Slds,
FRC

jachguate
02-06-2005, 17:50:50
Pues ya rizando el rizo, en oracle se podria conseguir algo usando el package utl_file y un poco de pl/sql. Igual podriamos invocar al SQL*Loader desde SQL*Plus, o emplear java directamente en la base de datos para conseguirlo. Por último, también podriamos crear un Heterogeneous Service con algun adaptador para csv o texto (que ignoro si los habrán). Pero claro... estamos hablando de Oracle.

El hecho de que foxpro haya permitido algo desde su propio lenguaje de programación (que no es lo mismo que SQL) tiene en común con oracle que son casos aislados, algo retorcidos, y que como mínimo requerirán algo de programación.

Mi punto es: En SQL (estándar, y la mayoría de dialectos) simplemente no se puede.

Hasta luego.

;)

__hector
03-06-2005, 16:12:24
mira la utilidad de bulk insert de sql server, en los books online, que quizas te ayude.

Un ejemplo:


BULK INSERT Northwind.dbo.[Order Details]
FROM 'f:\orders\lineitem.tbl'
WITH
(
FIELDTERMINATOR = '|',
ROWTERMINATOR = '|\n'
)

erasmorc
03-06-2005, 20:39:04
Buenas tardes,

Mil gracias Hector esto funciono casi a la perfeccion, solo tengo que saber porque solo inserta completo el primer registro, los demas registros los inserta sin el primer campo, pero la ayuda me ha servido mucho, con un poco de esfuerzo puedo terminarlo. Gracias.

Siempre se puede.

Slds