---
title: Mappatura del database con gestione delle eccezioni del database
date: 2019-06-05
categories:
  - data-integration
  - database
  - database-mapping
tags:
  - data-mapping
  - database-exception-handling
  - database-mapping
  - mapforce
description: Altova MapForce include funzionalità per la gestione degli errori durante l'accesso ai database, che consentono di annullare le modifiche apportate ai dati interessati e, facoltativamente, di proseguire con il resto della mappatura del database.
---
Status: #blog

Tags:  #data-mapping #database-exception-handling #database-mapping #mapforce

Categories: [data-integration](/blog/it/category/data-integration.md) | [database + sql](/blog/it/category/database-sql.md) | [data-integration](/blog/it/category/data-integration.md)
# Mappatura del database con gestione delle eccezioni del database

I processi aziendali critici dipendono da dati affidabili, e gli amministratori di database, così come altri analisti di dati, desiderano essere certi dell'integrità delle informazioni memorizzate nelle tabelle del database. Durante le operazioni automatizzate di ETL (estrazione, trasformazione e caricamento) o altre attività di importazione di dati, potrebbero verificarsi errori a causa di dati non validi, che potrebbero compromettere il successo della procedura. Altova MapForce include funzionalità di gestione delle eccezioni del database per annullare le modifiche apportate ai dati interessati in caso di errore, e, opzionalmente, proseguire con il resto della mappatura del database.

Ad esempio, un errore in un singolo record non deve necessariamente impedire la prosecuzione di un processo di mappatura, soprattutto quando determinate restrizioni del database impediscono l'inserimento o l'aggiornamento di dati non validi.

![](/blog/images/container_ship5.jpg)

<!--more-->

L'abilitazione della gestione delle eccezioni del database include tutte le modifiche apportate al componente del database all'interno di transazioni che possono essere annullate in caso di errore. Gli utenti possono scegliere di proseguire con il resto della mappatura oppure interrompere l'esecuzione. Le transazioni possono essere abilitate a livello del componente del database, a livello di tabella o per le stored procedure.

La gestione delle eccezioni può essere combinata con la registrazione (o tracciamento) dell'output del database per creare un registro degli errori che si verificano durante l'elaborazione automatizzata.

Vediamo come funziona.

La cartella "Esempi di MapForce" include una mappatura di un database e un database SQLite che illustrano la gestione delle transazioni e il ripristino. Naturalmente, queste funzionalità sono supportate per [tutti i database relazionali più diffusi](https://www.altova.com/it/mapforce#db_mapping), per attività comuni come [la trasformazione da PostgreSQL a SQLite](https://www.altova.com/it/mapforce/convert-mysql), la mappatura di XML a SQL Server, la conversione di JSON in Access, e così via.

[![Esempio di mappatura dei dati per illustrare la gestione delle eccezioni nel database](/blog/images/database-mapping-1.png)](database-mapping-1.png)

Questa operazione di mappatura copia i dati da due tabelle del database in nuove tabelle con una struttura simile, ad eccezione di una differenza importante. Nella tabella "new_addresses" del database di destinazione, i campi "is_shipping" e "is_billing" non possono contenere valori nulli, mentre nella tabella "addresses" del database di origine erano ammessi valori nulli. Ciò significa che si verificheranno errori durante l'esecuzione della mappatura se vengono rilevati valori mancanti.

Esamineremo tre situazioni, utilizzando le opzioni di gestione delle eccezioni dei database per gestire gli errori in modi diversi

- In caso di primo errore, annullare tutte le modifiche e interrompere l'esecuzione del processo

- Annulla solo la transazione che ha generato l'errore e continua

- Annulla la transazione più recente e continua

### Annulla tutte le modifiche

Nella prima situazione, vogliamo applicare la gestione delle eccezioni del database per garantire che il database di destinazione rimanga completamente invariato in caso di errori durante l'esecuzione della mappatura. Per implementare questa opzione, possiamo aprire la finestra di dialogo "Proprietà" per il componente del database di destinazione e abilitare la gestione delle transazioni:

[![Esempio di configurazione delle transazioni per la gestione delle eccezioni nel database](/blog/images/transaction-setting-1.png)](transaction-setting-1.png)

Ora possiamo eseguire la mappatura cliccando sul pulsante "Output" nella parte inferiore del pannello di mappatura per generare lo script di esecuzione SQL, e successivamente selezionando l'opzione "Esegui script SQL" dal menu "Output" situato sopra la finestra dello script

[![Esempio di script SQL per la gestione delle eccezioni nel database](/blog/images/run-SQL-script-1.png)](run-SQL-script-1.png)

Quando si verifica il primo errore durante l'esecuzione, viene visualizzata una finestra di dialogo che consente di confermare o modificare le impostazioni della transazione che sono state selezionate in precedenza

[![Conferma delle impostazioni delle transazioni per la gestione delle eccezioni del database](/blog/images/error-message-1.png)](error-message-1.png)

Semplicemente, cliccheremo su "OK" per confermare le impostazioni originali. L'esecuzione della mappatura si interrompe e la finestra "Messaggi" descrive l'errore:

[![La finestra dei messaggi visualizza il primo errore rilevato durante la gestione delle eccezioni del database](/blog/images/Messages-1.png)](Messages-1.png)

Possiamo utilizzare la finestra di query del database integrata in MapForce per selezionare e visualizzare le tabelle "new_users" e "new_addresses". Ci aspettiamo che entrambe siano vuote:

[![Una query al database verifica il ripristino delle transazioni](/blog/images/db-query-1.png)](db-query-1.png)

Questo conferma che tutti i dati inseriti prima dell'errore sono stati annullati, ovvero rimossi dal database.

Durante l'esecuzione automatica, controllata da MapForce Server, le impostazioni delle transazioni del componente verrebbero utilizzate senza alcuna interruzione.

### Annulla l'ultima transazione e continua

Immaginate un caso in cui un file di grandi dimensioni contenente dati esterni deve essere importato in un database, ad esempio con diecimila record o più. Ci aspettiamo che il file esterno sia valido, ma se alcuni record contengono dati errati, vogliamo importare tutti i record corretti e documentare gli errori. Questa è una situazione di gestione delle eccezioni nel database, come descritto al punto 2 della lista sopra, combinata con [la tracciatura dei database, descritta in un post precedente](https://www.altova.com/blog/database-tracing/).

Per implementare questa opzione di gestione delle eccezioni per la tabella "new_addresses", clicchiamo sul pulsante "azioni sulla tabella" e selezioniamo le seguenti proprietà:

[![Impostazioni delle transazioni per un esempio di gestione delle eccezioni nel database](/blog/images/table-actions-2.png)](table-actions-2.png)

Ora possiamo generare un nuovo script SQL ed eseguirlo utilizzando lo stesso comando "Esegui script SQL" mostrato in precedenza. La finestra "Messaggi" registrerà diversi errori. Possiamo rieseguire la query SQL nella finestra "Query DB" per visualizzare i dati che sono stati mappati correttamente:

[![Query SQL e risultati per un esempio di gestione delle eccezioni del database che prevede l'annullamento delle modifiche e la prosecuzione](/blog/images/db-query-2.png)](db-query-2.png)

Inoltre, abbiamo generato un file di traccia in formato XML. L'immagine sottostante mostra una visualizzazione parziale all'interno della finestra dell'editor XML [XMLSpy](https://www.altova.com/it/xmlspy-xml-editor), relativa a un errore specifico, evidenziato sulla riga 54:

[![Registrare gli errori nei file di log durante la gestione delle eccezioni del database](/blog/images/trace-file.png)](trace-file.png)

Un file di traccia come questo rende facile individuare e correggere alcuni dati errati tra diecimila record!

### Annulla la transazione più recente e continua

La gestione delle eccezioni del database, nella situazione 3, soddisfa questo requisito aziendale: se l'inserimento di un indirizzo fallisce, allora anche il record utente principale non deve essere inserito, ma il resto della mappatura dovrebbe continuare.

Questo esempio è descritto in dettaglio nella guida online di MapForce, installata automaticamente insieme al software, e in tutti i file di esempio mostrati qui. Vi invitiamo a [scaricare una versione di prova gratuita](https://www.altova.com/it/download) e a seguire quella procedura, oppure a iniziare subito a implementare la gestione delle eccezioni del database nelle vostre mappature!
