Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
BLK IMPORT e Format file
giovedì 30 agosto 2007 - 10.04
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
gmt
Profilo
| Junior Member
98
messaggi | Data Invio:
gio 30 ago 2007 - 10:04
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
12
messaggi | Data Invio:
gio 30 ago 2007 - 10:11
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
98
messaggi | Data Invio:
gio 30 ago 2007 - 10:14
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
5.625
messaggi | Data Invio:
gio 30 ago 2007 - 10:15
>(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
98
messaggi | Data Invio:
gio 30 ago 2007 - 10:25
405_dotnet_dati.zip
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
5.625
messaggi | Data Invio:
gio 30 ago 2007 - 11:01
406_Esempio.zip
>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
98
messaggi | Data Invio:
gio 30 ago 2007 - 11:07
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
5.625
messaggi | Data Invio:
gio 30 ago 2007 - 12:17
>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
Torna su
Stanze Forum
Elenco Threads
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 !