Сопоставление типов данных в мастере импорта и экспорта SQL Server

Применимо к: SQL Server Integration Runtime служб SSIS в Фабрика данных Azure

В мастере импорта и экспорта SQL Server можно задать имя, тип данных и свойства типа данных для столбцов в новых целевых таблицах и файлах, но нельзя указать настраиваемые преобразования для значений столбцов. Поэтому важное значение имеет встроенное сопоставление типов данных из источника с типами данных в назначении.

Каким образом мастер выполняет сопоставление типов данных между источником и назначением?

При сопоставлении типов данных из одной системы или версии базы данных с другой мастер использует файлы сопоставления, устанавливаемые SQL Server Службы Integration Services. Например, он может сопоставить типы данных SQL Server с типами данных Oracle. По умолчанию файлы сопоставления в XML-формате устанавливаются в следующие папки.

  • C:\Program Files\Microsoft SQL Server\130\DTSMappingFiles\ (для 64-разрядной версии)
  • C:\Program Files (x86)\Microsoft SQL Server\130\DTSMappingFiles\ (для 32-разрядной версии)

Если существующий файл сопоставления был изменен или в папку был добавлен новый файл сопоставления, необходимо закрыть и заново открыть мастер импорта и экспорта SQL Server или среду SQL Server Data Tools (SSDT) , чтобы загрузить новые или измененные файлы.

Можно изменить существующий файл сопоставления

Если требуются различные сопоставления между типами данных, можно обновить файлы сопоставлений, чтобы изменить сопоставления, используемые мастером. Например, если при передаче данных из SQL Server в DB2 необходимо сопоставить тип данных nchar SQL Server с типом данных GRAPHIC DB2, а не с типом данных VARGRAPHIC DB2, то в файле сопоставления SqlClientToIBMDB2.xml необходимо изменить сопоставление nchar для использования типа GRAPHIC вместо VARGRAPHIC.

Можно добавить новый файл сопоставления

Службы Integration Services устанавливает сопоставления между многими часто используемыми комбинациями источника и назначения. Можно также добавить новые файлы сопоставления в каталог MappingFiles для поддержки дополнительных источников и назначений. Новые файлы сопоставления должны быть согласованы с опубликованной XSD-схемой и выполнять сопоставления между уникальными сочетаниями, источниками и назначениями. Схема для файлов сопоставления ( DataTypeMapping.xsd) опубликована здесь.

Образец файла сопоставления

Вот фрагмент XML-файла сопоставления, который сопоставляет типы данных SQL Server (или, точнее, из типов данных, используемых поставщиком данных .Net Framework для SQL Server) с типами данных Oracle. Можно видеть, что тип данных SQL Server int сопоставляется с типом данных 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>