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
Importare dati da un File Testo
lunedì 23 aprile 2007 - 16.36
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
KappaKappa2
Profilo
| Newbie
4
messaggi | Data Invio:
lun 23 apr 2007 - 16:36
Salve a tutti. Spero di riuscire a trovare risposta.
Ho un file da importare in una tabella Sql. Peccato che il mio file è del tipo:
campo1 = valore
campo2 = valore
...
campon = valore
campo1 = valore
campo2 = valore
...
campon = valore
cioè il mio record è composto da n campi ognuni su una riga.
Ho usato il DTS ma non mi permette grandi trasformazioni.
Cosa mi consigliate?
Stored procedure ? Script ?
Grazie
KK
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 23 apr 2007 - 16:41
>Ho un file da importare in una tabella Sql. Peccato che il mio
>file è del tipo:
>
>campo1 = valore
>campo2 = valore
>...
>campon = valore
>
>campo1 = valore
>campo2 = valore
>...
>campon = valore
>
>cioè il mio record è composto da n campi ognuni su una riga.
Ciao KK,
ma chi ha prodotto un file in un formato così "fantasioso"?
>Ho usato il DTS ma non mi permette grandi trasformazioni.
>Cosa mi consigliate?
>Stored procedure ? Script ?
Puoi ricorrere ad un ActiveX Script Task e scrivere una procedura vbs che parsa il file generandone uno in formato tabellare, con un separatore di colonna "classico" (come il punto e virgola o il TAB) e un CRLF come separatore di riga.
A questo punto puoi usare un Bulk Insert Task per importare il nuovo file.
>Grazie
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
KappaKappa2
Profilo
| Newbie
4
messaggi | Data Invio:
lun 23 apr 2007 - 16:57
Il File è generato da un'altra applicazione e non posso toccarlo. Se devo creare uno script che mi genera un altro file formattato nel modo corretto, a questo punto lo script può direttamente prendere i dati e metterli nella tabella.
Il problema è che se devo scrivere uno script tramite il DTS, non so come fare nel senso che esistono già variabili locali che mi danno la connessione e/o tabelle, oppure devo crearmi un oggetto connection, recordset etc. etc. ? Come si fa'?
Invece se io importo il file in una tabella così com'è, ottengo una tabella con 2 colonne. Posso tramite stored prendere i dati di questa tabella e scriverli in un altra formattando i dati? Come si fa'?
Per le mie conoscenze di sql / stored /DTS (= 0) è proprio questo il problema, non so come scrivere una stored, o reperire impostare un script senza creare ulteriori connessioni e giri di peppe.
Grazie KK
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 23 apr 2007 - 17:08
>Il File è generato da un'altra applicazione e non posso toccarlo.
>Se devo creare uno script che mi genera un altro file formattato
>nel modo corretto, a questo punto lo script può direttamente
>prendere i dati e metterli nella tabella.
Dipende da come hai intenzione di importarlo
Una operazione bulk (bcp.exe, BULK INSERT e Bulk Insert Task) ti permette di importare milioni di righe in un baleno, mentre una eventuale applicazioncina che "prende i dati e li importa" ci impiegherebbe un tempo 1000 (almeno) volte superiore (facendo pure esplodere il t-log)
>Il problema è che se devo scrivere uno script tramite il DTS,
>non so come fare nel senso che esistono già variabili locali
>che mi danno la connessione e/o tabelle, oppure devo crearmi
>un oggetto connection, recordset etc. etc. ? Come si fa'?
Mi sembra di capire che non conosci i DTS... Il loro funzionamento non si spiega in un post, ti suggerisco di leggere attentamente i Books Online. Un'altra fonte di informazioni può essere il sito
http://www.sqldts.com
>Invece se io importo il file in una tabella così com'è, ottengo
>una tabella con 2 colonne. Posso tramite stored prendere i dati
>di questa tabella e scriverli in un altra formattando i dati?
>Come si fa'?
Questa soluzione non la considero nemmeno dato che dovresti fare i salti mortali per parsare le righe con le (inefficienti) funzioni stringa offerte dal linguaggio SQL...
>Per le mie conoscenze di sql / stored /DTS (= 0) è proprio questo
>il problema, non so come scrivere una stored, o reperire impostare
>un script senza creare ulteriori connessioni e giri di peppe.
Eh... cosa vuoi che ti dica? Qui non si tratta di un problema specifico da risolvere, ma di imparare a conoscere SQL Server...
>Grazie KK
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Mato
Profilo
| Newbie
18
messaggi | Data Invio:
mar 24 apr 2007 - 10:17
due domande:
1) c'e l'hai la tabella con le due colonne??
2) n è sempre lo stesso???
ciò che penso così è
Msn Contact : n.g.red@hotmail.it
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 !