miércoles, 15 de octubre de 2014

Lectura del archivo TXT

Lectura del archivo TXT


Creación deprocedure de lectura del archivo DatosGenerales.txt, para la migración de datos.

Errores:
1- En la edición del código para la lectura del archivo se tuvieron errores con el ID ya que el archivo no incluye estas. Y a la hora de que el BULK intentaba insertar no los agregaba y daba un error, ya que la tabla tenia un ID INT IDENTITY(1,1).

Solución: para resolver el error 1 se creo un tabla temporal sin ID y Primary Key. Se uso tablas temporales ya que tablas variables daban un error desconocido.


-----------------------------------------------------------------------------------------------------------------------
-- Verifica si el procedure existe, para eliminarla
IF OBJECT_ID ( N'MG_SP_LEER_DATOS_GENERALES', N'P' ) IS NOT NULL 
    DROP PROCEDURE MG_SP_LEER_DATOS_GENERALES;
GO

-- Create procedure for read file
CREATE PROCEDURE MG_SP_LEER_DATOS_GENERALES
AS
BEGIN
 -- Creacion de una tabla temporal para los datos generales
 CREATE TABLE #temp_aux( 
  TipoOperacion NVARCHAR(MAX) NOT NULL,
  Nombre NVARCHAR(MAX) NOT NULL,
  Comision NVARCHAR(MAX) NOT NULL,
  TasaAnual NVARCHAR(MAX) NOT NULL,
  SaldoMinimo NVARCHAR(MAX) NOT NULL,
  MultaSaldoMinimo NVARCHAR(MAX) NOT NULL,
  MultaSaldoNegativo NVARCHAR(MAX) NOT NULL,
  Usuario NVARCHAR(MAX) NOT NULL,
  Contraseña NVARCHAR(MAX) NOT NULL
 );

 -- Lectura del archivo txt
 BULK INSERT #temp_aux
 FROM 'C:\Users\Edward\SkyDrive\SQL\Proyecto_2_2014\DatosGenerales.txt'
 WITH 
 (
  FIELDTERMINATOR = ',',
  ROWTERMINATOR = '\n'
    );

 -- Insert de los datos de la tabla temp a la de FileDatosGenerales de migracion
 INSERT dbo.FileDatosGenerales
 (
     TipoOperacion,
     Nombre,
     Comision,
     TasaAnual,
     SaldoMinimo,
     MultaSaldoMinimo,
     MultaSaldoNegativo,
     Usuario,
     Contraseña
 )SELECT TipoOperacion,
     Nombre,
     Comision,
     TasaAnual,
     SaldoMinimo,
     MultaSaldoMinimo,
     MultaSaldoNegativo,
     Usuario,
     Contraseña FROM #temp_aux;

 -- Elimina #temp_aux
  DROP TABLE #temp_aux
END
GO

Referencias:
http://stackoverflow.com/questions/2007857/reading-a-text-file-with-sql-server
http://www.codeproject.com/Tips/775961/Import-CSV-or-txt-File-Into-SQL-Server-Using-Bulk
http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file

Horas Trabajadas: 2.5 hora
Autor: Edward Ovares Villegas

No hay comentarios:

Publicar un comentario