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

[SOLUCIONADO] Procedure txt a Sql

Estas en el tema de Procedure txt a Sql en el foro de SQL Server en Foros del Web. Hola deseo pasar un txt a sql con un SP Probé con: BULK INSERT WITH (FIELDTERMINATOR = ',') pero me habla de ',' y no ...
  #1 (permalink)  
Antiguo 19/05/2014, 14:28
 
Fecha de Ingreso: mayo-2014
Ubicación: Tierra de Lagos y Volcanes
Mensajes: 12
Antigüedad: 9 años, 11 meses
Puntos: 0
Procedure txt a Sql

Hola deseo pasar un txt a sql con un SP

Probé con:
BULK INSERT WITH (FIELDTERMINATOR = ',') pero me habla de ',' y no quiero agragarle comas a mi txt. deseo pasarlo tal y como esta:

Carlos Browm 22356978 /*Ejemplo txt sin $ o ,


en mi tabla temporal los campos son stFName, stLName, stTelefono.

Probe el BULK tambien asi FIELDTERMINATOR = ' ' pero me manda todo el contenido de mi txt al campo stTelefono. Quisiera que se pase ordenado a mi tabla ya sea con otra instrucción.

Muchas gracias.
  #2 (permalink)  
Antiguo 19/05/2014, 14:32
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Procedure txt a Sql

¿Leiste la estructura del BULK INSERT?

BULK INSERT tutabla
FROM 'c:\tuarchivo.txt'
WITH
(
FIELDTERMINATOR =' ',
ROWTERMINATOR = ':\n')
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 19/05/2014, 14:51
 
Fecha de Ingreso: mayo-2014
Ubicación: Tierra de Lagos y Volcanes
Mensajes: 12
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Procedure txt a Sql

Si pero me habla de que tengo que separar los campos en el txt ' ,' ':\n' y deseo pasarlo tal como esta a mi tabla. Si hay algun otro metodo que no sea Bulk o si se puede con el bienvenido.

Gracias por responder
  #4 (permalink)  
Antiguo 20/05/2014, 11:51
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Procedure txt a Sql

Veamos

-- Contenido de mi archivo Nombres.txt en c:\
Isaias Islas Gonzalez 5555678900
Alberto Gomez Urrutia 4567890012
Jose Reynoso Alcocer 4567890034

-- Mi tabla NOMBRES
Nombre varchar no 50
APaterno varchar no 50
AMaterno varchar no 50
Telefono varchar no 20

-- Mi instrucción BULKINSERT

Código SQL:
Ver original
  1. BULK INSERT Nombres
  2.  FROM 'c:\Nombres.txt'
  3.  WITH
  4.  (
  5.  FIELDTERMINATOR =' ',
  6.  ROWTERMINATOR = '\n')

-- Mi resultado
Código SQL:
Ver original
  1. SELECT * FROM Nombres

Isaias Islas Gonzalez 5555678900
Alberto Gomez Urrutia 4567890012
Jose Reynoso Alcocer 4567890034

(3 row(s) affected)
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 20/05/2014, 14:36
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Respuesta: Procedure txt a Sql

Amigos, me sumo al tema ya que tengo un error al querer ejecutar una instrucción de BULK INSERT:

Msg 4860, Level 16, State 1, Line 1
Cannot bulk load. The file "C:\test.txt" does not exist.


El archivo está creado en la unidad indicada.

Que puede estar pasando?

Gracias y saludos

damimg
  #6 (permalink)  
Antiguo 20/05/2014, 15:26
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Procedure txt a Sql

Pues eso, que NO EXISTE.

Verifica que realmente el archivo TEST, tenga la extensión TXT y que sea correcto el drive c:\
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 20/05/2014, 15:31
 
Fecha de Ingreso: mayo-2014
Ubicación: Tierra de Lagos y Volcanes
Mensajes: 12
Antigüedad: 9 años, 11 meses
Puntos: 0
Pregunta Respuesta: Procedure txt a Sql

Muchas gracias, como lo describi al comienzo proble poniendo: FIELDTERMINATOR ' '.
Las veces que he probado asi me mandaba todo el contenido del txt a una sola columna ahora ni eso, solo me da el error:

Msg 4832, Level 16, State 1, Line 1
Bulk load: An unexpected end of file was encountered in the data file.
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.
Msg 7330, Level 16, State 2, Line 1
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".


Tú lo hiciste como muestras en el ejemplo? porque a mi no me da. Si pongo (FIELDTERMINATOR = '\N' , ROWTERMINATOR = ' ') me llena las columnas asi
[IMG]C:\Users\informatica\Desktop\Nuevaimagen(1)[/IMG]
  #8 (permalink)  
Antiguo 20/05/2014, 16:38
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Procedure txt a Sql

Mándame un ejemplo de tus registros contenidos en tu archivo TXT y muéstrame como estas ejecutando el BULK INSERT
__________________
MCTS Isaias Islas
  #9 (permalink)  
Antiguo 20/05/2014, 16:45
 
Fecha de Ingreso: mayo-2014
Ubicación: Tierra de Lagos y Volcanes
Mensajes: 12
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Procedure txt a Sql

Los registro son inventados, muy parecidos a los de tu ejemplo (para las pruebas) en txt.

Axel Moreno 22458978
Dierish Zuniga 54852126
Marlon Gutierrez 48796521


En mi tabla: Nombre:TmpStList (StFName, StLName, StTelefono)


te agradezco mucho iislas.
  #10 (permalink)  
Antiguo 21/05/2014, 15:06
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Procedure txt a Sql

Con ese ejemplo, se ejecuta sin problema alguno en mi server, posiblemente lo que este pasando es que tu separados de campos no sea espacio, sea un tabulador
__________________
MCTS Isaias Islas
  #11 (permalink)  
Antiguo 21/05/2014, 15:53
 
Fecha de Ingreso: mayo-2014
Ubicación: Tierra de Lagos y Volcanes
Mensajes: 12
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Procedure txt a Sql

Disculpa mi ignoracia.

Probablemente sea como dices porque cuando cree el txt de prueba para definir los separados efectivamente lo hice con tabulaciones (barra espaciadora) si te refieres a eso, cómo hacerlo por espacios?
  #12 (permalink)  
Antiguo 21/05/2014, 20:46
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Procedure txt a Sql

¿Ya probaste SUBIR la información de tu archivo de "Pruebas" a una tabla de paso?
__________________
MCTS Isaias Islas
  #13 (permalink)  
Antiguo 22/05/2014, 16:23
 
Fecha de Ingreso: mayo-2014
Ubicación: Tierra de Lagos y Volcanes
Mensajes: 12
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Procedure txt a Sql

Tabla de paso = Temporal? Si es asi, ya lo hice. Crees que se pueda hacer con un bcp?
  #14 (permalink)  
Antiguo 22/05/2014, 16:24
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Procedure txt a Sql

creo que no entiendes lo que te dice iislas, ya revisaste tu archivo con algun editor que te muestre los separadores de columnas y de renglones algo como notepad++???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #15 (permalink)  
Antiguo 22/05/2014, 16:34
 
Fecha de Ingreso: mayo-2014
Ubicación: Tierra de Lagos y Volcanes
Mensajes: 12
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Procedure txt a Sql

Lo siento, soy nuevo en esto de las BD.

Esto se hace con Show space and Tab?

Tienen que tener la misma longitud? solo me aparecen puntos diminutos.
  #16 (permalink)  
Antiguo 22/05/2014, 17:54
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Respuesta: Procedure txt a Sql

Cita:
Iniciado por iislas Ver Mensaje
Pues eso, que NO EXISTE.

Verifica que realmente el archivo TEST, tenga la extensión TXT y que sea correcto el drive c:\
iislas te confirmo que el archivo con extensión TXT y la unidad son correctas!!!

Qué puede estar ocurriendo?

Saludos

damimg
  #17 (permalink)  
Antiguo 22/05/2014, 19:50
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Procedure txt a Sql

Cita:
Iniciado por damimg Ver Mensaje
iislas te confirmo que el archivo con extensión TXT y la unidad son correctas!!!

Qué puede estar ocurriendo?

Saludos

damimg
puedes poner todo tu query???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #18 (permalink)  
Antiguo 23/05/2014, 07:35
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Respuesta: Procedure txt a Sql

Cita:
Iniciado por Libras Ver Mensaje
puedes poner todo tu query???

create table t1 (

nombre varchar(50),
importe tinyint
)


BULK INSERT T1
FROM 'C:\test.txt'
WITH
(
FIELDTERMINATOR =':',
ROWTERMINATOR = '\r\n')
  #19 (permalink)  
Antiguo 23/05/2014, 11:20
 
Fecha de Ingreso: mayo-2014
Ubicación: Tierra de Lagos y Volcanes
Mensajes: 12
Antigüedad: 9 años, 11 meses
Puntos: 0
Busqueda Importando txt

Hola, podrias darme unos ejemplos de cómo hacerlo?

Select * from openrowset ( bulk 'direccion', single blob)

Después del from que va?
después del Bulk que pongo mi txt o mi tabla?
que hago con el single blob?

La instrucción pasada es la misma que esta en se que diferencian?
SELECT BulkColumn
FROM OPENROWSET (BULK 'c:\temp\SampleUnicode.txt', SINGLE_NCLOB) MyFile

Muchas gracias.
  #20 (permalink)  
Antiguo 23/05/2014, 11:27
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Importando txt

Te aconsejo que primero, BUSQUES EN GOOGLE, leas, analices y si aun tienes duda, vienes y nos la planteas, ¿como ves?
__________________
MCTS Isaias Islas
  #21 (permalink)  
Antiguo 23/05/2014, 12:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Procedure txt a Sql

No se permite abrir dos threads par aun mismo tema. Se debe continuar en el mismo (Ver Políticas de Uso).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #22 (permalink)  
Antiguo 27/05/2014, 08:41
 
Fecha de Ingreso: mayo-2014
Ubicación: Tierra de Lagos y Volcanes
Mensajes: 12
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Procedure txt a Sql

Oh perdon, no lo volvere a hacer.

iislas, esto es de otra consulta parecida que hicieron, creo que podría hacerlo asi como lo sugeriste al que preguntó : http://www.forosdelweb.com/f87/bulk-insert-txt-plano-sin-delimitador-campos-932497/

Me pasa todo mi txt a una sola columna en mi tabla, ahora sera que pueda separar las columnas del txt una vez estando en la columna de mi tabla? Te referias a eso?
  #23 (permalink)  
Antiguo 27/05/2014, 09:30
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Procedure txt a Sql

Nop, me refería que si quedaba así:

aaaaa bbbbb ccccc bbbbb aaaaaa ccccc

Podrías utilizar SUSBSTRING y separar tus datos.
__________________
MCTS Isaias Islas
  #24 (permalink)  
Antiguo 29/05/2014, 11:34
 
Fecha de Ingreso: mayo-2014
Ubicación: Tierra de Lagos y Volcanes
Mensajes: 12
Antigüedad: 9 años, 11 meses
Puntos: 0
De acuerdo Respuesta: Procedure txt a Sql

Hola. Tenias razon iislas, mi separados son tab, ya consegui pasarlo a mi tabla. Lo hice con la ayuda de una libreria FileHelpers "Open Source". Gracias a todos.


Etiquetas: procedure, select, sql, tabla, txt
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 20:57.