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

Importacion plano a SQL

Estas en el tema de Importacion plano a SQL en el foro de SQL Server en Foros del Web. Buenos tardes a todos y a todas Primero, muchas gracias por los tips que me han dado anteriormente y espero que en este tema también ...
  #1 (permalink)  
Antiguo 07/12/2005, 14:07
 
Fecha de Ingreso: diciembre-2005
Mensajes: 24
Antigüedad: 18 años, 4 meses
Puntos: 0
Importacion plano a SQL

Buenos tardes a todos y a todas

Primero, muchas gracias por los tips que me han dado anteriormente y espero que en este tema también me puedan colaborar.


Tengo que importar un txt que se encuentra en la maquina del cliente a una tabla, he estado leyendo y en contre un comando BULK pero dice “que solo sirve si sql Server se esta ejecutando en la maquina local al disco lógico especificado”.

Si esto es así como importo un txt que se encuentra en la estación del cliente a una tabla del servidor. esto pretendo hacerlo mediante un sp.

Intente hacerlo de esta manera y no me funciona

CREATE PROCEDURE Cargar AS
BULK INSERT pubs.dbo.Plano
FROM 'c:\plano.txt'
WITH (DATAFILETYPE = 'char' , FIELDTERMINATOR = ',' , ROWTERMINATOR = ';')

Muchas gracias

Última edición por Miguel_Arias; 07/12/2005 a las 15:21
  #2 (permalink)  
Antiguo 07/12/2005, 15:53
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Prueba usando carpetas de red compartidas, por ejemplo \\maquina\folder\plano.txt

O bien, que los usuarios coloquen el archivo en una carpeta en el servidor exprofesa (¿se escribe así? ) para eso.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 07/12/2005, 16:17
 
Fecha de Ingreso: diciembre-2005
Mensajes: 24
Antigüedad: 18 años, 4 meses
Puntos: 0
gracias, voy a intentar tu solucion y te cuento, nuevamente muchas gracias..........la cuestion es urgente.
  #4 (permalink)  
Antiguo 07/12/2005, 16:26
 
Fecha de Ingreso: diciembre-2005
Mensajes: 24
Antigüedad: 18 años, 4 meses
Puntos: 0
Mithrandir te cuento que no me funciono, el error que me sale es el siguiente:

Inserción masiva: fin inesperado del archivo de datos (EOF).
Servidor: mensaje 7399, nivel 16, estado 1, línea 1
El proveedor OLE DB 'STREAM' informa de un error. El proveedor no proporcionó información acerca del error.
Traza de error de OLE DB [OLE/DB Provider 'STREAM' IRowset::GetNextRows returned 0x80004005: El proveedor no proporcionó información acerca del error.].
Se terminó la instrucción

me deja completamente loco este error

Te agradeceria cualquier guia que me puedas dar ya que como te dije la cosa es urgente y el tiempo apremia

como siempre muchas gracias
  #5 (permalink)  
Antiguo 07/12/2005, 18:10
 
Fecha de Ingreso: noviembre-2005
Mensajes: 658
Antigüedad: 18 años, 5 meses
Puntos: 3
Para usar el BCP desde una maquina cliente no necesitas tener corriendo el Servidor SQL Server allí; solo se requiere que esté instalado el Client SQL en el PC y que por supuesto este en red.
El utilitario a usar seria desde una consola MSDOS

BCP Tubase..TuTabla c:\tucarpeta\tuarchivo.txt -Utulogin -Ptupassword -STuServidorSQL -b15000 -c

Para ver todos los parametros das bcp ?

el parametro -bxxxxx : sisrve para ir grabando de a lotes de 15000 en este ejemplo; en donde al llegar a este limite se realiza un checkpoint y se limpia el log (si tu tabla tiene indices; sino tiene no logea nada)
-c : indica caracteres (casi siempre funciona usando este parametro....tambien puedes cambiar este parametro por el uso de tab)
  #6 (permalink)  
Antiguo 07/12/2005, 18:41
 
Fecha de Ingreso: enero-2004
Mensajes: 310
Antigüedad: 20 años, 3 meses
Puntos: 0
Antes de nada miraria que el dts funcionase en el servidor. Si el dts te funciona correctamente entonces intenta el tema de \\maquina\... (lo digo por el "fin inesperado del archivo de datos (EOF).")

Si tu cliente fuese de otra red, tendrías que pensar un sistema (por ejemplo via ftp) para realizar las importaciones.
__________________
Un saludo,
Trucos
Videos
  #7 (permalink)  
Antiguo 08/12/2005, 17:15
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Cita:
Iniciado por Miguel_Arias
Mithrandir te cuento que no me funciono, el error que me sale es el siguiente:

Inserción masiva: fin inesperado del archivo de datos (EOF).
Servidor: mensaje 7399, nivel 16, estado 1, línea 1
El proveedor OLE DB 'ST...
¿Como lo intentas hacer?

¿Tienes definidos las carpetas compartidas con los accesos/provilegios necesarios?

¿Que usuario corre el SERVICIO de SQL Server y SQL Agent (si es que lo metes en un Job)? ojo que no es necesariamente el usuario de la terminal en el servidor

¿Está ese usuario dentro de tus permisos de la carpeta compartida?
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #8 (permalink)  
Antiguo 09/12/2005, 08:24
 
Fecha de Ingreso: diciembre-2005
Mensajes: 24
Antigüedad: 18 años, 4 meses
Puntos: 0
les agradezco la respuesta, ya me puse a mirar lo de dts pero en este momento necesito desarrollar la importación del txt mediante un SP.

Utilice este comando en el pc personal(mi casa, tengo el server localmente) y me funciono perfectamente:

BLUK INSERT pubs.dbo.plano
FROM ‘c:\plano.txt’
WITH
(DATAFILETYPE = ‘char’, FIELDTERMINATOR = ‘,’ , ROWTERMINATOR = ‘;’)

Como te dije funciono perfectamente pero hoy lo intente en el pc de la oficina no me funciono, pense que no tenia los permisos suficiente y por esa razon lo ejecute directamente en el servidor como administrador y tampoco me funciono, este es el error:

[Microsoft][ODBC SQL Server Driver][SQL Server]Inserción masiva: fin inesperado del archivo de datos (EOF).
[Microsoft][ODBC SQL Server Driver][SQL Server]El proveedor OLE DB 'STREAM' informa de un error. El proveedor no proporcionó información acerca del error.

si saben que ocurre se los agradezco.........


muchas gracias.
  #9 (permalink)  
Antiguo 09/12/2005, 09:59
 
Fecha de Ingreso: enero-2004
Mensajes: 310
Antigüedad: 20 años, 3 meses
Puntos: 0
como quieras, pero sigo sin entender porque con un SP si con un DTS es brillante... (puedes testear la migración de datos, te muestra los errores... en fin...)
Creo que sera de los catalogos del servidor o parecidos... Si localmente te funciona puede que sea algo del servidor.
Aunque, supongo que ese fichero lo pones en el servidor no?
__________________
Un saludo,
Trucos
Videos
  #10 (permalink)  
Antiguo 14/12/2005, 08:31
 
Fecha de Ingreso: diciembre-2005
Mensajes: 24
Antigüedad: 18 años, 4 meses
Puntos: 0
Sonrisa

Buenos dias a todo y a todas:

primero muchas gracias a todos los que me colaboraron con el problema del txt......ya lo solucione, lo realice mediante BULK...funciono por ahora.

pero como la idea es mejorar cada dia.....eso dice mi mama....les puedo pedir un fa...... me podrian indicar donde consigo info con respecto a los DTS(que son, como se hacen ....como se come eso!)

yo basicamente lo que necesito es que un usuario desde una estacion y en una aplicacion mediante un boton pueda importar un txt a sql, como ya les dije realice un sp en el cual ejecuto bulk y funciona........es posible ejecutar dts de la misma manera o algo similar??

les agradezco la colaboracion

saludos
Miguel.

Última edición por Miguel_Arias; 14/12/2005 a las 09:09
  #11 (permalink)  
Antiguo 14/12/2005, 18:10
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Un buen lugar para aprender sobre dts es http://www.sqldts.com/
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #12 (permalink)  
Antiguo 24/11/2009, 10:46
 
Fecha de Ingreso: noviembre-2009
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
De acuerdo Respuesta: Importacion plano a SQL

Cita:
Iniciado por Miguel_Arias Ver Mensaje
Buenos dias a todo y a todas:

primero muchas gracias a todos los que me colaboraron con el problema del txt......ya lo solucione, lo realice mediante BULK...funciono por ahora.

pero como la idea es mejorar cada dia.....eso dice mi mama....les puedo pedir un fa...... me podrian indicar donde consigo info con respecto a los DTS(que son, como se hacen ....como se come eso!)

yo basicamente lo que necesito es que un usuario desde una estacion y en una aplicacion mediante un boton pueda importar un txt a sql, como ya les dije realice un sp en el cual ejecuto bulk y funciona........es posible ejecutar dts de la misma manera o algo similar??

les agradezco la colaboracion

saludos
Miguel.
  #13 (permalink)  
Antiguo 24/11/2009, 10:49
 
Fecha de Ingreso: noviembre-2009
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Importacion plano a SQL

Miguel me alegra que lo lograste, en este momento tengo el mismo problema que tu, estoy tratando de cargar los datos que etngo en un archivo de texto a una tabla de sql, el archivo lo tengo en una carpeta compartida, adjunto el código:
BULK

INSERT usuariosnofiscalizables
FROM '\\cst02t12617\Compartido\aimportar.txt'--Ruta del archivo
WITH

( FIELDTERMINATOR = ',', --separa campos
ROWTERMINATOR = '\n' ) --separa filas

GO

y el mensaje de error que obtengo es:
Mens. 4861, Nivel 16, Estado 1, Línea 1
Could not bulk insert because file '\\cst02t12617\Compartido\aimportar.txt' could not be opened. Operating system error code 1385(Logon failure: the user has not been granted the requested logon type at this computer.).

Gracias.
  #14 (permalink)  
Antiguo 24/11/2009, 10:59
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: Importacion plano a SQL

Debes revisar que USUARIO, arranca los servicios de SQL Server y Agent, si es un usuario de tipo LOCAL, nunca lo podras lograr.

Esto ya se trato en los primeros post.
  #15 (permalink)  
Antiguo 03/12/2009, 11:40
 
Fecha de Ingreso: diciembre-2009
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Importacion plano a SQL

Hola, buen dia a todos.

Tengo este problemita de sintaxis al cargar una foto a la BD de SQL

Sintaxis correcta:

DECLARE @ARCH varbinary(max)

SET @ARCH =(SELECT BulkColumn from Openrowset(Bulk 'C:\Fotos\Image3.jpg', Single_Blob) as EmployeePicture)

Sintaxis incorrecta:

DECLARE @Ruta varchar(50)
DECLARE @NombreArchivo varchar(20)
DECLARE @ARCH varbinary(max)

SET @NombreArchivo='imagen1.jpg'
SET @Ruta='C:\Fotos\' + @NombreArchivo
SELECT @Ruta

SET @ARCH = (SELECT BulkColumn from Openrowset(Bulk @Ruta, Single_Blob) as EmployeePicture)

Como podre sustituir la ruta: 'C:\FOTOS\Imagen1.jpg' por la variable @ruta ?

De antemano muchas gracias...

Salu2
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 05:28.