Ошибка «Не удалось разрешить ссылку» при использовании задачи объединения: укажите правильное имя области - PullRequest
0 голосов
/ 01 февраля 2019

Я использую таблицу метаданных для генерации пакета ssis, циклически перебирая таблицу метаданных и генерируя усеченные операторы, загружая данные и затем объединяя данные.В то время как я пытаюсь загрузить значения в операторе слияния, я получаю следующую ошибку.

Ошибка 20 FlowFramework, Версия = 5.0.63501.0, Культура = нейтральная, PublicKeyToken = 015f370a62f9a1a3.Не удалось разрешить ссылку на Table.PK_Table в свойстве TargetConstraint.'' является недействительным.Укажите правильное имя области.Свойство TargetConstraint.C: \ Users \ ansoe74 \ Documents \ visual studio 2010 \ projects \ 760_2_0_biml \ 760_2_0_biml \ BimlScript.biml 0 0

Имеющийся у меня скрипт biml

<#  String FileConnection ="SELECT Name,CodePage,RowDelimiter,ColumnNamesInFirstDataRow,IsUnicode,FlatFileType,TextQualifer,TableName,TempTableName,TableConstraintName FROM dbo.FlatFileMaster"; 
#>

<Connections> 
    <OleDbConnection Name="OLEDB_Staging" ConnectionString="Data Source=local;Initial Catalog=TEST_DB;Provider=SQLNCLI11.1;Integrated Security=SSPI;"></OleDbConnection> 
<# 
    DataTable fileConnections =ExternalDataAccess.GetDataTable(connString,FileConnection); 
    foreach(DataRow fileConnection in fileConnections.Rows) 
    { 
#> 
    <FlatFileConnection Name="<#=fileConnection[0]#>" FileFormat="<#=fileConnection[0]#>" FilePath="C:\Users\ansoe74\Documents\Test\BIML_Files\Test\<#=fileConnection[0]#>.csv" CreateInProject="false"/> 
<# 
    } 
#> 
    </Connections> 
<FileFormats> 
    <# 
        DataTable files =ExternalDataAccess.GetDataTable(connString,FileConnection); 
        foreach(DataRow file in files.Rows) 
        { 
            String FileConnectionName = file[0].ToString(); 
            String FileColumns = "SELECT FlatFileName,ColumnName,Delimiter,ColumnType,OutputColumnWidth,DataPrecision,DataScale,DataType,CodePage,TextQualified FROM dbo.FlatFileColumnDetails Where FlatFileName=\'" + FileConnectionName + "\'"; 
    #> 
    <FlatFileFormat Name="<#=file[0]#>" CodePage="<#=file[1]#>" HeaderRowDelimiter="LF" RowDelimiter="<#=file[2]#>" ColumnNamesInFirstDataRow="<#=file[3]#>" IsUnicode="<#=file[4]#>" FlatFileType="<#=file[5]#>" TextQualifer="<#=file[6]#>"> 
        <Columns> 
        <# 
            DataTable columns = ExternalDataAccess.GetDataTable(connString,FileColumns); 
            foreach(DataRow column in columns.Rows) 
            { 
        #> 
            <Column Name="<#=column[1]#>" Delimiter="<#=column[2]#>" ColumnType="<#=column[3]#>" InputLength="0" Length="<#=column[4]#>" Precision="<#=column[5]#>" Scale="<#=column[6]#>" DataType="<#=column[7]#>" CodePage="<#=column[8]#>" TextQualified="<#=column[9]#>"/>
        <# 
            } 
        #> 
        </Columns> 
    </FlatFileFormat> 
    <# 
        } 
    #> 
</FileFormats> 

<Tasks> 

    <# 
            DataTable DFT =ExternalDataAccess.GetDataTable(connString,FileConnection); 
            foreach(DataRow SourceFile in DFT.Rows) 
            { 
        #>
        <ExecuteSQL Name="Truncate <#=SourceFile[8]#>" ConnectionName="OLEDB_Staging" BypassPrepare="false">
            <DirectInput>Truncate Table <#=SourceFile[8]#>; </DirectInput>
        </ExecuteSQL>

    <Dataflow Name="<#=SourceFile[0]#>">
        <PrecedenceConstraints>
            <Inputs>
                <Input OutputPathName="Truncate <#=SourceFile[8]#>.Output"/>
            </Inputs>
        </PrecedenceConstraints>
        <Transformations> 
            <FlatFileSource ConnectionName="<#=SourceFile[0]#>" Name="<#=SourceFile[0]#>" RetainNulls="true" /> 
            <DerivedColumns Name="Derived Column">
                <Columns>
                    <Column Name="SUBMISSION_ID" DataType="Int32">0</Column>
                </Columns>
            </DerivedColumns>
            <OleDbDestination ConnectionName="OLEDB_Staging" Name="OLEDB <#=SourceFile[0]#>" KeepNulls="true">
                <ExternalTableOutput Table="<#=SourceFile[8]#>"></ExternalTableOutput>
            </OleDbDestination>
        </Transformations> 

    </Dataflow> 
    <Merge Name="Merge <#=SourceFile[7]#>" UnspecifiedColumnDefaultUsageType="CompareUpdateInsert" TargetConnectionName="OLEDB_Staging" TargetConstraintName="<#=SourceFile[7]#>.<#=SourceFile[9]#>">
        <ExternalTableSource Table="<#=SourceFile[8]#>"/>
    </Merge>
    <# 
            } 
        #> 

</Tasks> 
</Package> 

Объединение должно иметь возможность обновлять и вставлять данные на основе данных, уже присутствующих в таблице dest.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...