2016-08-19 2 views
0

Je crée une recherche dans BIMLscript pour créer un paquet ssis avec une recherche. Essentiellement, j'essaie simplement de démontrer la fonctionnalité de la recherche, donc je regarde la table contre elle-même. Quand je crée le paquet, il semble bien se construire. Cependant quand je l'ouvre dans VS2013, j'obtiens une multitude d'erreurs comme ceci:Création d'une recherche SSIS avec script BIML

Erreur 1 Erreur de validation. char1: char1: LKP_char1.Inputs [Extract_Output_LKP_char1] .Columns [chr_1] a une erreur non valide ou une disposition de ligne de troncature. char.dtsx 0 0

char1 est le nom de la table, LKP_char1 est le nom de la recherche et chr_1 est le nom de la première colonne. Est-ce que quelqu'un a des idées sur la façon d'essayer et déboguer cela.

J'ai mon attribut NoMatchBehavior de mon tag LookUp sur « IgnoreFailure »

<Dataflow Name="<#=table.SsisSafeName#>"> 
    <Transformations> 
    <OleDbSource Name="Extract" ConnectionName="Source"> 
     <DirectInput>SELECT * FROM <#=table.SchemaQualifiedName#> 
     </DirectInput> 
    </OleDbSource> 
    <Lookup Name="LKP_<#=table.Name#>" 
     NoMatchBehavior="IgnoreFailure" 
     OleDbConnectionName="Source"> 
      <ExternalTableInput Table="<#=table.SchemaQualifiedName#>"> 
      </ExternalTableInput> 
      <Inputs> 
      <# foreach (var column in table.Columns) { #> 
       <Column SourceColumn="<#=column.Name#>" TargetColumn="<#=column.Name#>" /> 
      <# } #> 
      </Inputs> 
     <Outputs> 
      <# foreach (var column in table.Columns) { #> 
      <Column SourceColumn="<#=column.Name#>" TargetColumn="<#=column.Name#>" /> 
      <# } #> 
     </Outputs> 
    </Lookup> 
    <# } #> 
     <OleDbDestination Name="Load" ConnectionName="Source" UseFastLoadIfAvailable="false"> 
      <InputPath OutputPathName="LKP_<#=table.Name#>.Match" /> 
      <ExternalTableOutput Table="<#=table.SchemaQualifiedName#>" /> 
     </OleDbDestination> 
    </Transformations> 
</Dataflow> 
+0

merci pour cela. J'ai supprimé la "réponse". –

+0

En regardant votre code, vous avez une table que vous utilisez pour conduire la création de votre paquet biml. Cette table est la source du flux de données. Vous avez ensuite une recherche sur la même table et comparez toutes les mêmes colonnes pour une correspondance (entrées), puis doublez toutes les colonnes existantes dans la DFT. Logiquement, cela semble ... off – billinkc

+0

oui je sais, mais en théorie ne devrait-il pas signifier qu'ils sont tous les matches et le paquet se comporterait comme un flux de données normal? Au lieu de cela, la recherche déclenche des erreurs. –

Répondre

0

Vous n'avez pas fourni BIML il est donc difficile de diagnostiquer le problème, mais voici un exemple de travail avec deux recherches

<Biml xmlns="http://schemas.varigence.com/biml.xsd"> 
    <Connections> 
     <Connection Name="AdventureWorks" ConnectionString="Provider=SQLOLEDB;Data Source=localhost\dev2014;Integrated Security=SSPI;Initial Catalog=AdventureWorks2014" /> 
    </Connections> 
    <Packages> 
     <Package Name="LookupDemo" ConstraintMode="Linear"> 
      <Tasks> 
       <Dataflow Name="DFT Sample"> 
        <Transformations> 
         <OleDbSource Name="OLE_SRC AW" ConnectionName="AdventureWorks" > 
          <DirectInput>SELECT * FROM (VALUES (N'TRL', 'Turkish Lira'), ('LEI', 'Romania'))D(Code, CurrencyName) cross apply 
           (VALUES (N'XRQ - TRUCK GROUND'),('ZY - EXPRESS')) D1(ShipMethod);</DirectInput> 
         </OleDbSource> 

         <Lookup Name="LKP Purchasing_ShipMethod" NoMatchBehavior="IgnoreFailure" OleDbConnectionName="AdventureWorks"> 
          <DirectInput>SELECT 
          SM.ShipMethodID 
         , SM.Name 
         , SM.ShipBase 
         , SM.ShipRate 
         FROM 
          Purchasing.ShipMethod AS SM</DirectInput> 
          <Inputs> 
          <Column SourceColumn="ShipMethod" TargetColumn="Name" /> 
          </Inputs> 
          <Outputs> 
          <Column SourceColumn="" TargetColumn="" /> 
          </Outputs> 
         </Lookup> 
         <Lookup Name="LKP Sales_Currency" NoMatchBehavior="IgnoreFailure" OleDbConnectionName="AdventureWorks"> 
          <DirectInput>SELECT 
          SC.CurrencyCode 
         , SC.Name 
         FROM 
          Sales.Currency AS SC;</DirectInput> 
          <Inputs> 
          <Column SourceColumn="Code" TargetColumn="CurrencyCode" /> 
          </Inputs> 
          <Outputs> 
          <Column SourceColumn="CurrencyCode" TargetColumn="lkp_CurrencyCode" /> 
          <Column SourceColumn="Name" TargetColumn="lkp_Name" /> 
          </Outputs> 
         </Lookup> 
         <DerivedColumns Name="DER Placeholder for data viewer" />      
        </Transformations> 
       </Dataflow> 
      </Tasks> 
     </Package> 
    </Packages> 
</Biml> 
+0

'' '' '' '' '' '' '' '' ' –

+0

Je suis désolé, je ne comprends pas – billinkc

+0

désolé il ne me laisserais pas le poster comme un commentaire, donc je devais soumettre comme une réponse. Mais j'ai posté mon code de script biml. –