SQL Server 匯入和匯出精靈的資料類型對應

適用於:SQL Server Azure Data Factory 中的 SSIS Integration Runtime

在 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 時,如果想要讓 SQL Server nchar 資料類型對應至 DB2 GRAPHIC 資料類型,而非 DB2 VARGRAPHIC 資料類型,則可在 SqlClientToIBMDB2.xml 對應檔案中變更 nchar 對應,以使用 GRAPHIC 而非 VARGRAPHIC

您可以加入新的對應檔案

Integration Services 會在多種常用來源和目的地組合之間安裝對應。 您也可以在 MappingFiles 目錄中加入新的對應檔案,支援其他的來源與目的地。 新的對應檔必須符合已發行的 XSD 結構描述,也必須對應來源和目的地的唯一組合。 對應檔案結構描述 DataTypeMapping.xsd的發行位置在 這裡

範例對應檔案

以下是從 SQL Server 資料類型 (或者更具體地說,從 SQL Server .Net Framework 資料提供者使用的資料類型) 對應至 Oracle 資料類型之 XML 對應檔案的一部分。 如您所見,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>