BLK IMPORT e Format file

giovedì 30 agosto 2007 - 10.04

gmt Profilo | Junior Member

Salve,

parliamo di SQL Server 2000, devo fare un import..
Devo importare (tramite BULK INSERT e Format file) da un file di testo alcune cose.. non tutte

(file di testo)
0001000200030004000500060007000800000000000000000000100
000100020003000400050006000700080000000000000000100
0001000200030004000500060007000800000000000000000000000100

Dovre importare solo i campi 2, 3, 4, 5, 6, 8 in una tabella (valori 0002,0003,0004, ...)

Non ci riesco..

Allora nella tabella ho messo anche un campo filler1 e filler7 ma poi l'ultimo campo 100 è a lunghezza variabile e non so come escluderlo..

Riporto come ho creato il format file (faccio le prove su SQL 2005, poi lo faro' girare su 2000)

9.0
8
1 SQLCHAR 0 4 "" 1 filler1 Latin1_General_CI_AS
2 SQLCHAR 0 4 "" 2 nag Latin1_General_CI_AS
3 SQLCHAR 0 4 "" 3 codicefiscale Latin1_General_CI_AS
4 SQLCHAR 0 4 "" 4 partitaiva Latin1_General_CI_AS
5 SQLCHAR 0 4 "" 5 intestazione1 Latin1_General_CI_AS
6 SQLCHAR 0 4 "" 6 intestazione2 Latin1_General_CI_AS
7 SQLCHAR 0 4 "" 7 filler2 Latin1_General_CI_AS
8 SQLCHAR 0 4 "\n" 8 sportello Latin1_General_CI_AS

Aiuto!

Storiken Profilo | Newbie

magari è una banalità ma mai pensato di importare tutto in una tabella di nome diverso e quindi fare una bella select into dei soli campi che vuoi importare?

gmt Profilo | Junior Member

Parliamo di migliaia e migliaia di record.. quindi i tempi di attesa sono importanti.. farei due volte il lavoro e vorrei evitarlo..

lbenaglia Profilo | Guru

>(file di testo)
>0001000200030004000500060007000800000000000000000000100
>000100020003000400050006000700080000000000000000100
>0001000200030004000500060007000800000000000000000000000100
>
>Dovre importare solo i campi 2, 3, 4, 5, 6, 8 in una tabella
>(valori 0002,0003,0004, ...)
>
>Non ci riesco..
>
>9.0
>8
>1 SQLCHAR 0 4 "" 1 filler1
>Latin1_General_CI_AS
>2 SQLCHAR 0 4 "" 2 nag
>Latin1_General_CI_AS
>3 SQLCHAR 0 4 "" 3 codicefiscale
>Latin1_General_CI_AS
>4 SQLCHAR 0 4 "" 4 partitaiva
>Latin1_General_CI_AS
>5 SQLCHAR 0 4 "" 5 intestazione1
>Latin1_General_CI_AS
>6 SQLCHAR 0 4 "" 6 intestazione2
>Latin1_General_CI_AS
>7 SQLCHAR 0 4 "" 7 filler2
>Latin1_General_CI_AS
>8 SQLCHAR 0 4 "\n" 8 sportello
>Latin1_General_CI_AS

Come fanno il codice fiscale e la partica IVA ad essere di 4 caratteri?
Puoi postare il comando CREATE TABLE della tabella ed un tracciato record REALE?

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

gmt Profilo | Junior Member

Per la privacy avevo semplificato..
riporto uno zip con
la query per creare la tabella
Il file del formato file (ora c'è l'errore cha al campo 8 finisce.. sto in prova)
Un flusso di alcuni dati.. (poi saranno migliaia)

Grazie

lbenaglia Profilo | Guru

>Per la privacy avevo semplificato..
Eh si, ma se mi cambi il tracciato record siamo punto e a capo

>riporto uno zip con
>la query per creare la tabella
>Il file del formato file (ora c'è l'errore cha al campo 8 finisce..
>sto in prova)
>Un flusso di alcuni dati.. (poi saranno migliaia)
OK, ti riallego l'esempio funzionante.
Fai attenzione che l'ultima riga del file di dati DEVE terminare con un CRLF, OK?

>Grazie
Prego.

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

gmt Profilo | Junior Member

Ok,

1 SQLCHAR 0 10 "" 0 filler1 Latin1_General_CI_AS
2 SQLCHAR 0 8 "" 1 nag Latin1_General_CI_AS
3 SQLCHAR 0 16 "" 2 codicefiscale Latin1_General_CI_AS
4 SQLCHAR 0 11 "" 3 partitaiva Latin1_General_CI_AS
5 SQLCHAR 0 32 "" 4 intestazione1 Latin1_General_CI_AS
6 SQLCHAR 0 32 "" 5 intestazione2 Latin1_General_CI_AS
7 SQLCHAR 0 42 "" 0 filler2 Latin1_General_CI_AS
8 SQLCHAR 0 4 "" 6 sportello Latin1_General_CI_AS
9 SQLCHAR 0 200 "\r\n" 0 filler3 Latin1_General_CI_AS

lo zero di filler1, filler2 e filler3 significano che non deve importare su nessun campo ??

ahhh mi mancava questo passaggio!! Di ai tuoi amici di Microsoft che in MSDN si facciano esempi più complessi eh eh eh !!

Grazie

lbenaglia Profilo | Guru

>lo zero di filler1, filler2 e filler3 significano che non deve
>importare su nessun campo ??
Esatto.

>ahhh mi mancava questo passaggio!!
Te ne mancavano anche altri

>Di ai tuoi amici di Microsoft
>che in MSDN si facciano esempi più complessi eh eh eh !!
Non ho amici in Microsoft... Mah, forse 1

>Grazie
Prego.

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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5