2010-05-26 34 views
8

Hola chicos, Estoy tratando de importar archivos CSV a la base de datos del servidor SQL, sin éxito. Todavía soy novato en el servidor sql, gracias.Importación de archivos CSV en el servidor SQL ...

 
Operation stopped... 

- Initializing Data Flow Task (Success) 

- Initializing Connections (Success) 

- Setting SQL Command (Success) 

- Setting Source Connection (Success) 

- Setting Destination Connection (Success) 

- Validating (Success) 
    Messages 
    * Warning 0x80049304: Data Flow Task 1: Warning: Could not open global shared memory to communicate with performance DLL; data flow performance counters are not available. To resolve, run this package as an administrator, or on the system's console. 
    (SQL Server Import and Export Wizard) 


- Prepare for Execute (Success) 

- Pre-execute (Success) 
    Messages 
    * Information 0x402090dc: Data Flow Task 1: The processing of file "D:\test.csv" has started. 
    (SQL Server Import and Export Wizard) 


- Executing (Error) 
    Messages 
    * Error 0xc002f210: Drop table(s) SQL Task 1: Executing the query "drop table [dbo].[test] 
    " failed with the following error: "Cannot drop the table 'dbo.test', because it does not exist or you do not have permission.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly. 
    (SQL Server Import and Export Wizard) 

    * Error 0xc02020a1: Data Flow Task 1: Data conversion failed. The data conversion for column ""Code"" returned status value 4 and status text "Text was truncated or one or more characters had no match in the target code page.". 
    (SQL Server Import and Export Wizard) 

    * Error 0xc020902a: Data Flow Task 1: The "output column ""Code"" (38)" failed because truncation occurred, and the truncation row disposition on "output column ""Code"" (38)" specifies failure on truncation. A truncation error occurred on the specified object of the specified component. 
    (SQL Server Import and Export Wizard) 

    * Error 0xc0202092: Data Flow Task 1: An error occurred while processing file "D:\test.csv" on data row 21. 
    (SQL Server Import and Export Wizard) 

    * Error 0xc0047038: Data Flow Task 1: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on component "Source - test_csv" (1) returned error code 0xC0202092. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure. 
    (SQL Server Import and Export Wizard) 


- Copying to [dbo].[test] (Stopped) 

- Post-execute (Success) 
    Messages 
    * Information 0x402090dd: Data Flow Task 1: The processing of file "D:\test.csv" has ended. 
    (SQL Server Import and Export Wizard) 

    * Information 0x402090df: Data Flow Task 1: The final commit for the data insertion in "component "Destination - test" (70)" has started. 
    (SQL Server Import and Export Wizard) 

    * Information 0x402090e0: Data Flow Task 1: The final commit for the data insertion in "component "Destination - test" (70)" has ended. 
    (SQL Server Import and Export Wizard) 

    * Information 0x4004300b: Data Flow Task 1: "component "Destination - test" (70)" wrote 0 rows. 
    (SQL Server Import and Export Wizard) 
+1

vea el bit que dice: "... falló con el siguiente error:" No se puede eliminar la tabla 'dbo.test', porque no existe o no tiene permiso. "." –

Respuesta

6

Usted realmente tiene dos grandes problemas en su importación:

Error 0xc002f210: Drop table(s) SQL Task 1: Executing the query "drop table [dbo].[test] " failed with the following error: "Cannot drop the table 'dbo.test', because it does not exist or you do not have permission.".

Parece que usted está tratando de eliminar una tabla que ni siquiera existe. Solución: ¡simplemente no lo hagas!

Error 0xc02020a1: Data Flow Task 1: Data conversion failed. The data conversion for column ""Code"" returned status value 4 and status text "Text was truncated or one or more characters had no match in the target code page.".

Su columna "Código" obviamente es más larga que la columna resultante que tiene en su tabla de destino. Compruebe las asignaciones: quizás esta sea una cadena de caracteres muy larga, y la longitud predeterminada para la columna VARCHAR en SQL Server es demasiado pequeña. Cambiar el tipo de datos de la columna de destino a, p. VARCHAR(MAX) - ¡eso te da 2 GB de espacio! Eso debería ser suficiente ...

También parece que la columna "Código" contiene caracteres que no están presentes en la página de códigos actualmente seleccionada en SQL Server. ¿Puede quitar esos caracteres especiales adicionales antes de importar? De lo contrario, es posible que deba usar NVARCHAR(MAX) para el tipo de datos de la columna de destino para permitirle usar Unicode para sus caracteres (y así soportar hasta los caracteres más exóticos en su cadena de entrada).

12

"Text was truncated or one or more characters had no match in the target code page."

puede ocurrir incluso cuando:

  • su archivo plano fuente es un archivo UNICODE

Y

  • su columna de destino se define como nvarchar (max).

Esto me tomó un tiempo darme cuenta.

Causa

SSIS infiere tipos de datos en el archivo de origen desde el escaneo de las primeras N filas y hacer una conjetura. Debido a los intentos repetidamente repetidos de hacerlo funcionar, había estacionado los metadatos para el tipo de datos (OutputColumnWidth) a 50 caracteres en algún punto del camino, causando el truncamiento interno del paquete.

Resolución

jugando con los metadatos en la pestaña "Avanzado" de la fuente de datos es entonces lo que quiere hacer para resolver el problema. Intente restablecer todo al jugar con la configuración en "Sugerir tipos", o ajustar la configuración campo por campo. Una cantidad realmente desalentadora de iteraciones fue necesaria en mi caso (archivo de entrada amplio), pero finalmente puede hacer que funcione.

+4

+1 Cómo el mundo es este el predeterminado !? – CrazyPyro

0

Dado que esto es muy rápido, es aconsejable utilizar los Tipos Sugeridos y ajustar la configuración campo por campo. Si está creando una tabla final directamente, es posible que desee aumentar un poco el ancho de las columnas para ingresar datos posteriormente. Sugiero solo contar el número de filas en su archivo de importación y escanear todo el conjunto como su 'muestra'. Cualquier cosa menos podría provocar errores. El tiempo para modificarlo probablemente no valga la pena.

1

que tenían el mismo problema:

Error 0xc02020a1: Data Flow Task 1: Data conversion failed. The data conversion for column "target" returned status value 4 and status text "Text was truncated or one or more characters had no match in the target code page.". 

La solución fue ir a "Opciones avanzadas" y cambiar el ancho de columna a 255.

1

O también se puede comprobar el tamaño del texto por ir a avanzado, luego verificando la sugerencia, y luego convierte la cadena a cadena unicode. ayuda a resolver errores relacionados con cadenas. ¡Los he estado enfrentando mucho recientemente!

0

Por "0xc02020a1 error" mi caso se resolvió cambiando el formato de celda de un lado archivo CSV: (Abrir el archivo CSV Excel >> cambiar el formato de celda a partir ciento en general a continuación, guardarlo), que resolvió mi caso .

+0

Esta no es la causa del problema y, por lo tanto, no es una gran respuesta. – rene

Cuestiones relacionadas