Problema su acquisizione file .csv

mercoledì 31 marzo 2010 - 08.29

mauri1961 Profilo | Senior Member

Ho creato una procedura per importare un file excel salvato come csv. I campi sono separati da una virgola e il codice è il seguente:

BULK INSERT WEB_PUBB
FROM 'C:\ACUCBL31\FILES\WEB\WBREGI.CSV'
WITH(
DATAFILETYPE='char',
FIELDTERMINATOR=';',
FIRSTROW=2

);

GO

in esecuzione, tuttavia, mi resttuisce il seguente errore:

Messaggio 4864, livello 16, stato 1, riga 1
Errore di conversione (non corrispondenza di tipo o carattere non valido per la tabella codici specificata) dei dati durante il caricamento bulk. Riga 2, colonna 44 (PUB_REG_CE).

Considerando che tale campo è l'ultimo della riga e che non è seguito dal ; immagino che non riconosca il fine riga. Ho provato anche a inserire il ROWTERMINATOR con \n ma senza risultato.

Che sarà?


Graxie, Maurizio

lbenaglia Profilo | Guru

>Considerando che tale campo è l'ultimo della riga e che non è
>seguito dal ; immagino che non riconosca il fine riga. Ho provato
>anche a inserire il ROWTERMINATOR con \n ma senza risultato.
>
>Che sarà?
Il row terminator
Specifica il valore \r\n (CR+LF).
Nel caso non vada posta il comando di CREATE TABLE ed allega un file zip con un esempio del file CSV.

>Graxie, Maurizio
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

mauri1961 Profilo | Senior Member

ho provato ma non funziona....mi dice che quell'ultimo campo è troppo lungo per il contenuto della colonna.
in effetti è un campo di un carattere che ho dichiarato bit, ma il contenuto dovrebbe corrispondere.

Ti allego come mi hai richiesto un estratto di poche righe del file .csv.

Grazie, Maurizio

lbenaglia Profilo | Guru

>Ti allego come mi hai richiesto un estratto di poche righe del
>file .csv.
Manca il comando di CREATE TABLE.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

mauri1961 Profilo | Senior Member

in passato però per altri tipi files non ho mai usato la create table per altri tipi files (.txt). E' necessaria utilizzarla per questo tipo di import considerando che anche in questo caso l'ho dichiarata in precedenza con sql server studio management?

Grazie ancora, Maurizio

lbenaglia Profilo | Guru

>in passato però per altri tipi files non ho mai usato la create
>table per altri tipi files (.txt). E' necessaria utilizzarla
>per questo tipo di import considerando che anche in questo caso
>l'ho dichiarata in precedenza con sql server studio management?
Mi serve la struttura della tua tabella per replicare l'importazione, altrimenti come faccio?
Non ho idea di come hai definito le colonne, eventuali constraints ecc...

>Grazie ancora, Maurizio
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

mauri1961 Profilo | Senior Member

chi male intende peggio risponde....avevo capito ben altra cosa...cmq ti allego la struttura della tabella che deve essere importata.

GRazie...Maurizio

lbenaglia Profilo | Guru

>ti allego la struttura della tabella che deve essere importata.
Ti prego, fai il bravo, puoi postare il comando di CREATE TABLE?
Lo genera automaticamente SQL Server Management Studio...

>GRazie...Maurizio
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

mauri1961 Profilo | Senior Member

scusa il ritardo....

ecco il codice....

CREATE TABLE WEB_PUBB
(PUB_PROT nvarchar(max),
PUB_CIP numeric(14,0),
PUB_DATAPRATICA char(10),
PUB_TIPOPRATICA numeric(3,0),
PUB_DESCRIZIONE nvarchar(max),
PUB_DATAREGOLARITA char(10),
PUB_ISSUBAPPALTO bit,
PUB_TIPORICHIEDENTE bit,
PUB_CF_ENTE nvarchar(max),
PUB_ENTE nvarchar(max),
PUB_CAP nvarchar(max),
PUB_CITTA_ENTE nvarchar(max),
PUB_PROV_ENTE nvarchar(2),
PUB_INDIRIZZO_ENTE nvarchar(max),
PUB_LAVORI nvarchar(max),
PUB_CAPLAVORI nvarchar(max),
PUB_LUOGO_LAVORI nvarchar(max),
PUB_PROV_LAVORI nvarchar(2),
PUB_INDIRIZZO_LAVORI nvarchar(max),
PUB_PROT_APPALTO nvarchar(max),
PUB_DATAPROT char(10),
PUB_TIPOAPPALTO nvarchar(50),
PUB_INIZIO char(10),
PUB_FINE char(10),
PUB_INIZIO_DEF char(10),
PUB_FINE_DEF char(10),
PUB_IMPORTO numeric(18,2),
PUB_PERCMANO numeric(3,0),
PUB_QUOTASUB numeric(3,0),
PUB_CF_APPALT nvarchar(16),
PUB_APPALTA nvarchar(50),
PUB_CAP_APP nchar(5),
PUB_CITTA_APP nvarchar(50),
PUB_PROV_APP nvarchar(2),
PUB_INDIRIZZO_APP nvarchar(max),
PUB_CF_IMPRESA nvarchar(16),
PUB_IMPRESA nvarchar(50),
PUB_CAP_IMPRESA nchar(5),
PUB_CITTA_IMPRESA nvarchar(50),
PUB_PROV_IMPRESA nvarchar(2),
PUB_INDIRIZZO_IMPRESA nvarchar(max),
PUB_REG_INPS bit,
PUB_REG_INAIL bit,
PUB_REG_CE bit)


grazie....maurizio

lbenaglia Profilo | Guru

>ecco il codice....
Mi spiace, non riesco a capire la corrispondenza tra le colonne della tabella e quelle del file .csv.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5