Mapping dei tipi di dati nell'Importazione/Esportazione guidata SQL Server

Si applica a:SQL Server SSIS Integration Runtime in Azure Data Factory

Nell'Importazione/Esportazione guidata SQL Server è possibile impostare il nome, il tipo di dati e le proprietà del tipo di dati delle colonne nei nuovi file e tabelle di destinazione, ma non è possibile specificare conversioni personalizzate per i valori di colonna. Il mapping dei tipi di dati dall'origine alla destinazione risulta quindi di primaria importanza.

Come viene eseguito il mapping dei tipi di dati tra origine e destinazione durante la procedura guidata?

La procedura guidata usa file di mapping installati da SQL Server Integration Services per eseguire il mapping dei tipi di dati da un tipo o una versione di database a un altro. Ad esempio, può eseguire il mapping da tipi di dati SQL Server a tipi di dati Oracle. Per impostazione predefinita, i file di mapping in formato XML sono installati nelle cartelle seguenti.

  • C:\Programmi\Microsoft SQL Server\130\DTSMappingFiles\ (per 64 bit)
  • C:\Programmi (x86)\Microsoft SQL Server\130\DTSMappingFiles\ (per 32 bit)

Se si modifica un file di mapping esistente o si aggiunge un nuovo file di mapping alla cartella, è necessario chiudere e riaprire l'Importazione/Esportazione guidata SQL Server o SQL Server Data Tools (SSDT) per caricare il file di mapping nuovo o modificato.

È possibile modificare un file di mapping esistente

Se sono necessari modelli di mapping diversi tra i tipi di dati, è possibile aggiornare i file di mapping per modificare i modelli di mapping usati dalla procedura guidata. Ad esempio, se si vuole eseguire il mapping del tipo di dati nchar di SQL Server al tipo di dati GRAPHIC di DB2 anziché al tipo di dati VARGRAPHIC di DB2 durante il trasferimento di dati da SQL Server a DB2, è possibile modificare il mapping di nchar nel file di mapping SqlClientToIBMDB2.xml in modo da usare GRAPHIC anziché VARGRAPHIC.

È possibile aggiungere un nuovo file di mapping

Integration Services installa i mapping tra le combinazioni di origine e destinazione più comuni. È comunque possibile aggiungere nuovi file di mapping alla directory MappingFiles per supportare anche altre combinazioni di origine e destinazione. I nuovi file di mapping devono essere conformi allo schema XSD pubblicato ed eseguire il mapping tra una combinazione univoca di origine e destinazione. Lo schema per i file di mapping, DataTypeMapping.xsd, è disponibile qui.

Esempio di file di mapping

Di seguito è riportata una parte del file di mapping XML che esegue il mapping tra tipi di dati SQL Server (o, più precisamente, tra i tipi di dati usati dal provider di dati .Net Framework per SQL Server) e tipi di dati Oracle. Nell'esempio viene eseguito il mapping di un tipo di dati SQL Server int a un tipo di dati Oracle INTEGER .

  
<dtm:DataTypeMappings  
    xmlns:dtm="https://www.microsoft.com/SqlServer/Dts/DataTypeMapping.xsd"   
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    SourceType="System.Data.SqlClient.SqlConnection"   
    MinSourceVersion="*"   
    MaxSourceVersion="*"   
    DestinationType="MSDAORA;OraOLEDB.Oracle;System.Data.OracleClient.OracleConnection"   
    MinDestinationVersion="08.*"   
    MaxDestinationVersion="*">  
  
    <!-- smallint -->  
    <dtm:DataTypeMapping >  
        <dtm:SourceDataType>  
            <dtm:DataTypeName>smallint</dtm:DataTypeName>  
        </dtm:SourceDataType>  
        <dtm:DestinationDataType>  
            <dtm:SimpleType>  
                <dtm:DataTypeName>INTEGER</dtm:DataTypeName>  
            </dtm:SimpleType>  
        </dtm:DestinationDataType>  
    </dtm:DataTypeMapping>    
  
    <!-- int -->  
    <dtm:DataTypeMapping >  
        <dtm:SourceDataType>  
            <dtm:DataTypeName>int</dtm:DataTypeName>  
        </dtm:SourceDataType>  
        <dtm:DestinationDataType>  
            <dtm:SimpleType>  
                <dtm:DataTypeName>INTEGER</dtm:DataTypeName>  
            </dtm:SimpleType>  
        </dtm:DestinationDataType>  
    </dtm:DataTypeMapping>    
  
        ...  
  
</dtm:DataTypeMappings>