Sebbene questa risposta sia in ritardo, non ho visto una risposta canonica al problema dell'apertura del formato di file .rpt e della sua scrittura su una tabella SQL.
-
In SQL Server Management Studio in Esplora oggetti, fai clic con il pulsante destro del mouse sul database in cui desideri caricare il file e scegli Attività... Importa dati.
-
Scegli Flat File Source, seleziona il tuo file, quindi assicurati che lo schermo sia impostato in modo che corrisponda allo screenshot seguente (Pagina codici =65001 UTF-8, Formato =Ragged a destra, Nomi delle colonne nella prima riga di dati). Quindi fare clic su Avanti.
- Fai clic sul primo carattere di ogni colonna (vedi i punti salienti gialli nello screenshot qui sotto per dove fare clic) per inserire le colonne nei punti appropriati:
- Fai clic sulla scheda Avanzate a sinistra. Scorri il nome di ogni colonna e rimuovi gli spazi dalla fine del nome della colonna. Correggi i tipi di dati come meglio credi. Avvertenza, le prime colonne potrebbero dover essere stringhe a causa del piè di pagina del file "(Righe NNN interessate)".
- Vai alla scheda Anteprima a sinistra, cambia le "Righe di dati da ignorare" su 1 e fai clic su Aggiorna:
- Fai clic sul pulsante Avanti e imposta la connessione al tuo database SQL:
-
Fai clic su Avanti e digita il nome della tua tabella nel formato
[dbo].[MyTable]
quindi fare clic su Modifica mappature e confermare che i tipi di dati della colonna corrispondono. Le colonne String (DT_STR) dovrebbero essere colonne varchar qui. La stringa Unicode (DT_WSTR) dovrebbe essere colonne nvarchar qui. -
Fare clic su Avanti e Fine per eseguire immediatamente. Dovresti vedere i messaggi di successo, non gli errori, si spera:
- C'è un piè di pagina che dice "(NNN righe interessate)" (dove NNN è il conteggio delle righe del tuo file). Interroga la tabella SQL di destinazione per trovare quella riga ed eliminarla.
select * from MyTable where MyColumn1 like '%(%'
può aiutarti a trovare quella riga. Conferma che la query restituisce solo una riga prima di eliminarla.