ホームページ >データベース >mysql チュートリアル >複数の .dtsx ファイルからのバージョン番号の取得を自動化するにはどうすればよいですか?
.Dtsx ファイルからのバージョン番号の自動取得
概要:
パッケージの手動取得多数の SSIS ファイルのバージョンを管理するのは面倒な場合があります。この記事では、このプロセスを自動化するさまざまな方法を説明します。
SSIS パッケージ内でのシステム変数の使用:
パッケージ内の SSIS システム変数にアクセスして取得します。バージョン情報:
取得.dtsx ファイルのバージョン:
dtsx ファイルを XML/テキストとして解析:
正規表現を使用する:
XML パーサーを使用する:
SQL Server に保存されている .dtsx ファイルからの情報の取得:
以下を参照してください。のリンククエリ:
抽出中SQL Server に保存されていない .dtsx ファイルのデータ:
を使用したサンプルコード正規表現:
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
Xml パーサーを使用したコード例:
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
以上が複数の .dtsx ファイルからのバージョン番号の取得を自動化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。