Abruf der Versionsnummer aus .Dtsx-Dateien automatisieren
Einführung:
Manueller Abruf des Pakets Versionen für zahlreiche SSIS-Dateien können mühsam sein. Dieser Artikel bietet verschiedene Ansätze zur Automatisierung dieses Prozesses.
Verwendung von Systemvariablen in SSIS-Paketen:
Zugriff auf SSIS-Systemvariablen innerhalb des Pakets zum Abrufen Version Informationen:
Version erhalten von .dtsx-Dateien:
Parsen Sie die dtsx-Datei als XML/Text:
Regex verwenden:
Verwenden Sie ein XML Parser:
Informationen aus gespeicherten .dtsx-Dateien in SQL abrufen Server:
Siehe die folgenden Links für Abfragen:
Extrahieren von Daten aus .dtsx-Dateien Nicht im SQL Server gespeichert:
Beispielcode verwenden Regex:
Public Sub ReadPackagesInfo(ByVal strDirectory As String) ' Initialize a list to store package information m_lst.Clear() Dim strPackageFormatVersion As String = "" Dim strCreationDate As String = "" ' ... (Additional property variables) For Each strFile As String In IO.Directory.GetFiles(strDirectory, "*.dtsx", IO.SearchOption.AllDirectories) ' Read the file contents Dim strContent As String = "" Using sr As New IO.StreamReader(strFile) strContent = sr.ReadToEnd sr.Close() End Using ' Use Regex to extract package version and other properties strPackageFormatVersion = Regex.Match(strContent, "(?<=""PackageFormatVersion"">)(.*)(?=</DTS:Property>)", RegexOptions.Singleline).Value ' ... (Additional regex patterns for other properties) ' Add package information to the list m_lst.Add(New PackageInfo With { .PackageFileName = strFile, .PackageFormatVersion = strPackageFormatVersion, ' ... (Additional properties) }) Next End Sub
Beispielcode mit XML-Parser:
Public Sub ReadPackagesInfoUsingXmlParser(ByVal strDirectory As String) ' Initialize a list to store package information m_lst.Clear() Dim strPackageFormatVersion As String = "" Dim strCreationDate As String = "" ' ... (Additional property variables) For Each strFile As String In IO.Directory.GetFiles(strDirectory, "*.dtsx", IO.SearchOption.AllDirectories) ' Load the file as XML document Dim xml = XDocument.Load(strFile) ' Create a namespace manager Dim ns As XNamespace = "www.microsoft.com/SqlServer/Dts" Dim man As XmlNamespaceManager = New XmlNamespaceManager(New NameTable()) man.AddNamespace("DTS", "www.microsoft.com/SqlServer/Dts") If Not xml.Root Is Nothing AndAlso Not xml.Root.Descendants(ns + "Property").Attributes(ns + "Name") Is Nothing AndAlso xml.Root.Descendants(ns + "Property").Attributes(ns + "Name").Where(Function(x) x.Value = "PackageFormatVersion").Count > 0 Then ' Extract package version and other properties using XPaths strPackageFormatVersion = xml.Root.Descendants(ns + "Property").Attributes(ns + "Name").Where(Function(x) x.Value = "PackageFormatVersion").FirstOrDefault.Parent.Value ' ... (Additional property extraction using XPaths) End If ' Add package information to the list m_lst.Add(New PackageInfo With { .PackageFileName = strFile, .PackageFormatVersion = strPackageFormatVersion, ' ... (Additional properties) }) Next End Sub
Das obige ist der detaillierte Inhalt vonWie kann ich den Abruf von Versionsnummern aus mehreren .dtsx-Dateien automatisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!