Trent'anni di definizioni di archivio AS/400 che devono diventare tabelle in un database moderno. Cambia il bersaglio e guarda cosa cambia davvero.
Il DDS descrive un archivio con nome, lunghezza e decimali in colonne fisse. Sembra illeggibile e invece è regolare: è proprio questa regolarità che permette di convertirlo invece di riscriverlo a mano campo per campo.
CUST 5 0
significa cinque cifre e zero decimali — un numero, non un testo. È la
lunghezza dichiarata nel tracciato, e da lì escono sia il tipo SQL sia la
posizione del campo nel file di dati.
È qui che una conversione fatta a mano sbaglia. I tipi non si
corrispondono uno a uno: quello che su DB2 è DECIMAL,
su PostgreSQL è NUMERIC, e un INTEGER
diventa INT su MySQL. Le righe evidenziate sono quelle dove il
bersaglio si discosta da DB2.
| Tipo AS/400 | IBM DB2 | PostgreSQL | MySQL | SQL Server |
|---|
Le stesse lunghezze che generano la tabella servono anche a leggere i dati: un estratto AS/400 è un file a larghezza fissa, senza separatori. Senza il tracciato è una colonna di caratteri; con il tracciato sono righe.
| CUST | ORDER | ORDATE | CUSORD |
|---|
Questa è una ricostruzione con dati inventati. Su una migrazione vera i tracciati sono i vostri, e la conversione si fa in blocco da riga di comando oltre che dall'interfaccia.
Vedi la scheda prodotto