Поделиться через


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

Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных 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), чтобы загрузить новый или измененный файл сопоставления.

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

Если требуются различные сопоставления между типами данных, можно обновить файлы сопоставлений, чтобы изменить сопоставления, используемые мастером. Например, если вы хотите, чтобы тип данных nchar SQL Server сопоставлял с типом данных DB2 GRAPHIC вместо типа данных DB2 VARGRAPHIC при передаче данных из SQL Server в DB2, можно изменить сопоставление nchar в файле сопоставления SqlClientToIBMDB2.xml, чтобы использовать ГРАФИЧЕСКИй элемент вместо 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>