sql >> Database >  >> RDS >> Sqlserver

Hoe alle fouten van alle SSIS-pakketten in een oplossing te krijgen?

Helaas is er geen manier om dit te bereiken vanuit uw integratieservices-oplossing (in visual studio) zonder de pakketten te openen of ze misschien uit te voeren met behulp van DTExec Utility . Maar u kunt een tijdelijke oplossing doen en programmatisch controleren of u fouten ophaalt:

Oplossing

  1. Ik heb een winforms-toepassing gemaakt met behulp van visual studio (met behulp van Vb.Net)
  2. Ik heb Microsoft.SqlServer.DTSPipelineWrap toegevoegd en Microsoft.SQLServer.ManagedDTS als referenties
  3. Ik heb de volgende code gebruikt om pakketten in een specifieke map te doorlopen, te valideren en fouten in een logbestand te krijgen:

    Dim strPackagesDirectory As String = "C:\Users\Admin\Desktop\New folder"
    Dim strOutputLogFile As String = "D:\1.txt"
    
    For Each strFile As String In IO.Directory.GetFiles(strPackagesDirectory, "*.dtsx", IO.SearchOption.TopDirectoryOnly)
    
        Dim pckg As New Microsoft.SqlServer.Dts.Runtime.Package
        Dim app As New Microsoft.SqlServer.Dts.Runtime.Application
    
        pckg = app.LoadPackage(strFile, Nothing)
        Dim obj = pckg.Validate(Nothing, Nothing, Nothing, Nothing)
    
        If pckg.Errors.Count > 0 Then
    
            Using sr As New IO.StreamWriter(strOutputLogFile, True)
                sr.WriteLine("")
                sr.WriteLine(strFile)
                sr.WriteLine("--------------")
                For Each err As Object In pckg.Errors
    
    
                    sr.WriteLine(err.Description)
    
                Next
    
                sr.WriteLine("==========")
                sr.Close()
            End Using
    
        End If
    Next
    

Referenties

  • https://msdn.microsoft.com/en-us/library/ms136090.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
  • https://msdn.microsoft.com/en-us/library/microsoft.sqlserver.dts.runtime.package.aspx
  • https://msdn.microsoft.com/en-us/library/microsoft.sqlserver.dts.runtime.dtscontainer.validate.aspx



  1. Hoe door komma's gescheiden waarden naar rijen in orakel te converteren?

  2. Postgresql-kolom niet gevonden, maar wordt weergegeven in Beschrijven

  3. Gebruik FILE_IDEX() om de ID van een databasebestand in SQL Server te retourneren

  4. Aanhoudende UUID in PostgreSQL met behulp van JPA