Ciao a tutti, attualmente sto utilizzando sql import\export wizard di sql server 2005 per importare dei file csv in tabelle sql server 2005
Ho deciso di utilizzare i csv in quanto sia con file xls e mdb (access) avevo svariati problemi durante l'esecuzione del package, in quanto la procedura si bloccata su alcune colonne segnalandomi problemi nella conversion/perdita di dati.
Quindi utilizzando i csv ho pensato che, essendo un file di testo, i dati letti non avevano problemi di formato e la conversione sarebbe stata immediata e senza problemi.
In realtà anche con i csv ho il seguente problema:
Data conversion failed while converting column "15_race" (18) to column "15_race" (163). The conversion returned status value 2 and status text "The value could not be converted because of a potential loss of data.".
Il campo di destinazione è un intero(INT). Il dato che viene letto è un numero (0 o 1)ovviamente in formato testo.
Teoricamente non ci devono essere problemi convertendo un valore numerico (ascii)in un campo INT?
Come potrei procedere?
Ho anche creato una query custom:
use Database_Name
go
BULK
INSERT dbo.Tabella1
FROM 'C:\Documents and Settings\Administrator\Desktop\csv\Tabella1.csv'
WITH
(
FIRSTROW=2,
MAXERRORS=0,
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)
Però riscontro il seguente errore:
Msg 4864, Level 16, State 1, Line 1
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 2, column 9 (22_dbirth).
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)"
Quindi ho rivisto tutte le date e le messe nel formato yyyymmdd,la procedura funziona correttamente.
L'unica cosa è che nel mio csv ci sono dei valori come il seguente: 01002121 ecc ...
Il valore viene salvato in un campo varchar ma mi viene troncato lo 0 iniziale --> 1002121.
Come posso ovviare al problema?
grazie