Ssis come tratto un record in "orizzontale"?

sabato 31 maggio 2008 - 08.50

memmo77 Profilo | Expert

Salve. Ho questo problema. Ho una serie di record di questo tipo:

0035001003590000001240210110003632100000000000000000000000000000000000000000000
0035001003590000001240210110003632100000000000000000000000000000000000000000000
0035001003590000001240210110003632100000000000000000000000000000000000000000000
.....
(qui sono uguali ma nella realtà no)

Da ognuno di questi record devo leggere i primi 5 caratteri. Con questi devo interrogare una tabella per prendere la lunghezza del valore di questi primi 5. Esempio:

Primi cinque caratteri = 00350 ( la tabella sul db mi dice che il suo valore è lungo 2) quindi il suo valore, sul record, sarà 00.
Secondi 5 caratteri = 10035 ( la tabella sul db mi dice che il suo valore è lungo 10) quindi il suo valore , sul record, sarà 9000000124. Poi prendo i secondi 5 caratteri e così via, fino alla fine di ogni record.

Come mi consigliate di trattare questa situazione con i ssis? Grazie

alx_81 Profilo | Guru

>Salve. Ho questo problema. Ho una serie di record di questo tipo:
Ciao!
>
>Come mi consigliate di trattare questa situazione con i ssis?
SSIS non ti permette la gestioe di un flat file in orizzontale.
Ho paura che tu debba utilizzare soltanto uno script.
Al massimo puoi farti un flat file adapter con un solo campo, e ciclarlo tramite dataflow, ma poi la gestione di ogni riga è sicuramente uno script.
Con lo script la tua logica è fattibile, poichè ogni riga la tratti con i metodi dell'oggetto String. Ogni qual volta che ottieni ciò che ti serve, lo inserisci su db.
Personalmente però, ritengo che SSIS non sia stata una scelta felice. Forse è meglio un programmino scritto ad hoc per la gestione di quel file.
Non lo trovo adatto a questa problematica, ragiona proprio in maniera differente.
Ti direi di usare SSIS se avessi le informazioni messe in verticale (lunghezza record, valore record), ma così credo che sia meglio pensare ad altro.

>Grazie
di nulla!

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5