{"id":12137,"date":"2022-10-07T18:10:38","date_gmt":"2022-10-07T09:10:38","guid":{"rendered":"https:\/\/prodskill.com\/?p=12137"},"modified":"2022-10-07T18:10:39","modified_gmt":"2022-10-07T09:10:39","slug":"extract-sql-from-ssis-package-file","status":"publish","type":"post","link":"https:\/\/prodskill.com\/zh\/extract-sql-from-ssis-package-file\/","title":{"rendered":"SSIS_Util\uff1a\u4ece SSIS \u5305\u6587\u4ef6 (.dtsx) \u4e2d\u63d0\u53d6 SQL \u7684\u5de5\u5177"},"content":{"rendered":"\n<p>\ucd5c\uadfc SSIS(SQL Server Integration Services)\ub97c \uc0ac\uc6a9\ud558\ub294 \uc5c5\ubb34 \uc911\uc5d0 SQL \ubd84\uc11d\uc744 \uc704\ud574 \uac04\ub2e8\ud788 \uc81c\uc791\ud55c SSIS package file\uc5d0\uc11c SQL \ucd94\ucd9c \ud558\ub294 \ub3c4\uad6c\uc5d0 \ub300\ud574 \uc0b4\ud3b4\ubcf8\ub2e4. \uc2e4\ud589\ubc29\ubc95\uacfc \uc18c\uc2a4\ucf54\ub4dc, sql \ud30c\uc77c, csv \ud30c\uc77c \ucd9c\ub825\uacb0\uacfc \uc608\uc2dc\uc5d0 \ub300\ud574 \ud655\uc778\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">&lt;&lt;\ubaa9\ucc28&gt;&gt;<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/prodskill.com\/zh\/extract-sql-from-ssis-package-file\/#1_SSIS%EC%99%80_SSIS_Util_%EA%B0%9C%EC%9A%94\" >1. SSIS\uc640 SSIS_Util \uac1c\uc694<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/prodskill.com\/zh\/extract-sql-from-ssis-package-file\/#11_SSIS_%EA%B0%9C%EC%9A%94\" >1.1. SSIS \uac1c\uc694<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/prodskill.com\/zh\/extract-sql-from-ssis-package-file\/#12_SSIS_Util_%EA%B0%9C%EC%9A%94\" >1.2. SSIS_Util \uac1c\uc694<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/prodskill.com\/zh\/extract-sql-from-ssis-package-file\/#2_SSIS_package_filedtsx_%EA%B5%AC%EC%A1%B0\" >2. SSIS package file(.dtsx) \uad6c\uc870<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/prodskill.com\/zh\/extract-sql-from-ssis-package-file\/#3_SSIS_Util_Python_Code\" >3. SSIS_Util Python Code<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/prodskill.com\/zh\/extract-sql-from-ssis-package-file\/#31_%ED%95%84%EC%9A%94%ED%95%9C_Package_%EC%84%A4%EC%B9%98\" >3.1. \ud544\uc694\ud55c Package \uc124\uce58<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/prodskill.com\/zh\/extract-sql-from-ssis-package-file\/#32_SQL_%EC%B6%94%EC%B6%9C_SSIS_Util_%EC%8B%A4%ED%96%89_%EB%B0%A9%EB%B2%95\" >3.2. SQL \ucd94\ucd9c  SSIS_Util \uc2e4\ud589 \ubc29\ubc95<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/prodskill.com\/zh\/extract-sql-from-ssis-package-file\/#33_SQL_%EC%B6%94%EC%B6%9C_%EC%A0%84%EC%B2%B4_%EC%86%8C%EC%8A%A4%EC%BD%94%EB%93%9C\" >3.3. SQL \ucd94\ucd9c \uc804\uccb4 \uc18c\uc2a4\ucf54\ub4dc<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/prodskill.com\/zh\/extract-sql-from-ssis-package-file\/#4_SSIS_Util_%EC%B6%9C%EB%A0%A5_%EA%B2%B0%EA%B3%BC_%EC%98%88%EC%8B%9C\" >4. SSIS_Util \ucd9c\ub825 \uacb0\uacfc \uc608\uc2dc<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/prodskill.com\/zh\/extract-sql-from-ssis-package-file\/#41_SQL_%EC%B6%94%EC%B6%9C_%EA%B2%B0%EA%B3%BC_%ED%8C%8C%EC%9D%BC_%EC%98%88%EC%8B%9C\" >4.1. SQL \ucd94\ucd9c \uacb0\uacfc \ud30c\uc77c \uc608\uc2dc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/prodskill.com\/zh\/extract-sql-from-ssis-package-file\/#42_csv_%ED%8C%8C%EC%9D%BC_%EC%98%88%EC%8B%9C\" >4.2. csv \ud30c\uc77c \uc608\uc2dc<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\" id=\"1._SSIS\uc640_SSIS_Util_\uac1c\uc694\"><span class=\"ez-toc-section\" id=\"1_SSIS%EC%99%80_SSIS_Util_%EA%B0%9C%EC%9A%94\"><\/span>1. SSIS\uc640 SSIS_Util \uac1c\uc694<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"1.1._SSIS_\uac1c\uc694\"><span class=\"ez-toc-section\" id=\"11_SSIS_%EA%B0%9C%EC%9A%94\"><\/span>1.1. SSIS \uac1c\uc694<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>SSIS\ub294 &#8220;SQL Server Integration Services&#8221;\uc758 \uc57d\uc790\uc774\uace0, Microsoft \ubb38\uc11c\uc5d0 \ub2e4\uc74c\uacfc \uac19\uc774 \uc815\uc758\ub418\uc5b4 \uc788\ub2e4.<\/p>\n\n\n\n<p>\ucd9c\ucc98:\u00a0<a href=\"https:\/\/docs.microsoft.com\/ko-kr\/sql\/integration-services\/sql-server-integration-services?view=sql-server-ver15\" target=\"_blank\" rel=\"noreferrer noopener\">SQL Server Integration Services &#8211; SQL Server Integration Services (SSIS) | Microsoft Docs<\/a><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-132.png\"><img loading=\"lazy\" decoding=\"async\" width=\"726\" height=\"769\" src=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-132.png\" alt=\"SSIS(SQL Server Integration Services) \uac1c\uc694\" class=\"wp-image-12138\" srcset=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-132.png 726w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-132-283x300.png 283w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-132-11x12.png 11w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-132-24x24.png 24w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-132-34x36.png 34w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-132-45x48.png 45w\" sizes=\"auto, (max-width: 726px) 100vw, 726px\" \/><\/a><figcaption>SSIS(SQL Server Integration Services) \uac1c\uc694<\/figcaption><\/figure>\n<\/div>\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>SQL Server Integration Services\ub294 \uc5d4\ud130\ud504\ub77c\uc774\uc988 \uc218\uc900 \ub370\uc774\ud130 \ud1b5\ud569 \ubc0f \ub370\uc774\ud130 \ubcc0\ud658 \uc194\ub8e8\uc158\uc744 \ube4c\ub4dc\ud558\ub294 \ub370 \ud544\uc694\ud55c \ud50c\ub7ab\ud3fc\uc785\ub2c8\ub2e4. Integration Services\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud30c\uc77c\uc744 \ubcf5\uc0ac \ub610\ub294 \ub2e4\uc6b4\ub85c\ub4dc\ud558\uace0, \ub370\uc774\ud130 \uc6e8\uc5b4\ud558\uc6b0\uc2a4\ub97c \ub85c\ub4dc\ud558\uace0, \ub370\uc774\ud130\ub97c \uc815\ub9ac \ubc0f \ub9c8\uc774\ub2dd\ud558\uace0, SQL Server \uac1c\uccb4\uc640 \ub370\uc774\ud130\ub97c \uad00\ub9ac\ud558\uc5ec \ubcf5\uc7a1\ud55c \ube44\uc988\ub2c8\uc2a4 \ubb38\uc81c\ub97c \ud574\uacb0\ud569\ub2c8\ub2e4.<\/p><p>Integration Services \ub294 XML \ub370\uc774\ud130 \ud30c\uc77c, \ud50c\ub7ab \ud30c\uc77c, \uad00\uacc4\ud615 \ub370\uc774\ud130 \uc6d0\ubcf8\uacfc \uac19\uc740 \ub2e4\uc591\ud55c \uc6d0\ubcf8\uc5d0\uc11c \ub370\uc774\ud130\ub97c \ucd94\ucd9c \ubc0f \ubcc0\ud658\ud55c \ub2e4\uc74c \ud558\ub098 \uc774\uc0c1\uc758 \ub300\uc0c1\uc73c\ub85c \ub85c\ub4dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p><p>Integration Services\uc5d0\ub294 \ud48d\ubd80\ud55c \uae30\ubcf8 \uc81c\uacf5 \uc791\uc5c5 \ubc0f \ubcc0\ud658 \uc9d1\ud569, \ud328\ud0a4\uc9c0 \ube4c\ub4dc\uc6a9 \uadf8\ub798\ud53d \ub3c4\uad6c \ubc0f \ud328\ud0a4\uc9c0\ub97c \uc800\uc7a5, \uc2e4\ud589 \ubc0f \uad00\ub9ac\ud558\ub294 Integration Services \uce74\ud0c8\ub85c\uadf8 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uac00 \ud3ec\ud568\ub429\ub2c8\ub2e4.<\/p><p>\uadf8\ub798\ud53d Integration Services \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud558\uc5ec \ucf54\ub4dc\ub97c \ud55c \uc904\ub3c4 \uc791\uc131\ud558\uc9c0 \uc54a\uace0 \uc194\ub8e8\uc158\uc744 \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uad11\ubc94\uc704\ud55c Integration Services \uac1c\uccb4 \ubaa8\ub378\uc744 \ud504\ub85c\uadf8\ub798\ubc0d\ud558\uc5ec \ud328\ud0a4\uc9c0\ub97c \ud504\ub85c\uadf8\ub798\ubc0d \ubc29\uc2dd\uc73c\ub85c \ub9cc\ub4e4\uace0 \uc0ac\uc6a9\uc790 \uc9c0\uc815 \ud0dc\uc2a4\ud06c \ubc0f \uae30\ud0c0 \ud328\ud0a4\uc9c0 \uac1c\uccb4\ub97c \ucf54\ub529\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p><\/blockquote>\n\n\n\n<p>\uac04\ub2e8\ud558\uac8c \uc694\uc57d\ud558\uba74 SSIS\ub294 \ub2e4\uc591\ud55c \uc6d0\ubcf8(source)\uc73c\ub85c\ubd80\ud130 \ub370\uc774\ud130\ub97c \ucd94\ucd9c(Extraction), \ubcc0\ud658(Transformation)\ud558\uace0 \ub300\uc0c1(target)\uc5d0 \uc801\uc7ac(Load)\ud558\ub294 ETL \ub3c4\uad6c\uc774\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"1.2._SSIS_Util_\uac1c\uc694\"><span class=\"ez-toc-section\" id=\"12_SSIS_Util_%EA%B0%9C%EC%9A%94\"><\/span>1.2. SSIS_Util \uac1c\uc694<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>SSIS_Util\uc740 SSIS package file(.dtsx)\uc5d0\uc11c SQL\uc744 \ucd94\ucd9c\ud558\ub294 \ub3c4\uad6c\uc774\ub2e4. SQL \uc678\uc5d0 \uc791\uc5c5 \ud750\ub984 \uc815\ubcf4, DB ConnectionString\ub3c4 \ud568\uaed8 \ucd94\ucd9c\ud55c\ub2e4.<\/p>\n\n\n\n<p>SSIS package file(.dtsx)\uc740 Visual Studio\uc5d0\uc11c \uc5f4\uc218 \uc788\ub2e4. \uc2dc\uac01\uc801\uc73c\ub85c \ub370\uc774\ud130 \ucc98\ub9ac \uc808\ucc28\ub97c \ud655\uc778\ud560 \uc218 \uc788\ub294 \uc7a5\uc810\uc740 \uc788\uc9c0\ub9cc, SQL \uc804\uccb4\ub97c \uac80\uc0c9\ud558\uac70\ub098 DB \uc5f0\uacb0 \uc815\ubcf4 \uc804\uccb4\ub97c \ud655\uc778\ud558\uae30\uac00 \ubc88\uac70\ub86d\ub2e4.<\/p>\n\n\n\n<p>SSIS_Util\ub85c \ud544\uc694\ud55c \uc815\ubcf4\ub97c \ubcc4\ub3c4\uc758 \ud30c\uc77c\ub85c \ucd94\ucd9c\ud558\uba74 \ubd84\uc11d\uc758 \ud6a8\uc728\uc131\uc744 \ub192\uc77c \uc218 \uc788\uaca0\ub2e4 \uc2f6\uc5b4 \ub9cc\ub4e4\uc5c8\ub2e4.<\/p>\n\n\n\n<p>\uc18c\uc2a4\ucf54\ub4dc\ub294 github\uc5d0 \uc5c5\ub85c\ub4dc\ud574 \ub450\uc5c8\ub2e4.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/DAToolset\/SSIS_Util\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/DAToolset\/SSIS_Util<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"2._SSIS_package_file(.dtsx)_\uad6c\uc870\"><span class=\"ez-toc-section\" id=\"2_SSIS_package_filedtsx_%EA%B5%AC%EC%A1%B0\"><\/span>2. SSIS package file(.dtsx) \uad6c\uc870<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>dtsx \ud30c\uc77c \ub0b4\uc6a9\uc740 XML \uad6c\uc870\ub85c \uc815\uc758\ub418\uc5b4 \uc788\ub2e4. \uacf5\uac1c\ub418\uc5b4 \uc788\ub294 dtsx \ud30c\uc77c \uc911 \ub2e4\uc74c \ud30c\uc77c\uc758 \ub0b4\uc6a9\uc744 \uc77c\ubd80 \ubc1c\ucdcc\ud574 \ub454\ub2e4.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/LearningTechStuff\/SSIS-Tutorial\/blob\/master\/Lesson%201.dtsx\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/LearningTechStuff\/SSIS-Tutorial\/blob\/master\/Lesson%201.dtsx<\/a><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"xml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?xml version=\"1.0\"?>\n&lt;DTS:Executable\n  DTS:refId=\"Package\" xmlns:DTS=\"www.microsoft.com\/SqlServer\/Dts\"\n  DTS:ExecutableType=\"SSIS.Package.3\"\n  DTS:CreatorName=\"REDWOOD\\Barry\"\n  DTS:CreatorComputerName=\"REDWOOD\"\n  DTS:CreationDate=\"6\/9\/2012 4:03:57 PM\"\n  DTS:PackageType=\"5\"\n  DTS:VersionBuild=\"3\"\n  DTS:VersionGUID=\"{3A510DCF-C9DB-4039-9817-E408E5D2BACF}\"\n  DTS:LastModifiedProductVersion=\"11.0.2100.60\"\n  DTS:LocaleID=\"1033\"\n  DTS:ObjectName=\"Lesson 1\"\n  DTS:DTSID=\"{7691D130-E411-4B14-9676-A5DB6B8B4ADE}\"\n  DTS:CreationName=\"SSIS.Package.3\">\n  &lt;DTS:Property\n    DTS:Name=\"PackageFormatVersion\">6&lt;\/DTS:Property>\n  &lt;DTS:ConnectionManagers>\n    &lt;DTS:ConnectionManager\n      DTS:refId=\"Package.ConnectionManagers[localhost.AdventureWorksDW2012]\"\n      DTS:ObjectName=\"localhost.AdventureWorksDW2012\"\n      DTS:DTSID=\"{F094926F-2384-48F7-9515-DB8ACC225303}\"\n      DTS:CreationName=\"OLEDB\">\n      &lt;DTS:ObjectData>\n        &lt;DTS:ConnectionManager\n          DTS:ConnectionString=\"Data Source=localhost;Initial Catalog=AdventureWorksDW2012;Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;\" \/>\n      &lt;\/DTS:ObjectData>\n    &lt;\/DTS:ConnectionManager>\n    &lt;DTS:ConnectionManager\n      DTS:refId=\"Package.ConnectionManagers[Sample Flat File Source Data]\"\n      DTS:ObjectName=\"Sample Flat File Source Data\"\n      DTS:DTSID=\"{6DF5747F-57C2-4173-89B6-1A14A807DA3E}\"\n      DTS:CreationName=\"FLATFILE\">\n      &lt;DTS:ObjectData>\n        &lt;DTS:ConnectionManager\n          DTS:Format=\"Delimited\"\n          DTS:LocaleID=\"1033\"\n          DTS:HeaderRowDelimiter=\"_x000D__x000A_\"\n          DTS:RowDelimiter=\"\"\n          DTS:TextQualifier=\"_x003C_none_x003E_\"\n          DTS:CodePage=\"1252\"\n          DTS:ConnectionString=\"C:\\Program Files\\Microsoft SQL Server\\110\\Samples\\Integration Services\\Tutorial\\Creating a Simple ETL Package\\Sample Data\\SampleCurrencyData.txt\">\n          &lt;DTS:FlatFileColumns>\n            &lt;DTS:FlatFileColumn\n              DTS:ColumnType=\"Delimited\"\n              DTS:ColumnDelimiter=\"_x0009_\"\n              DTS:DataType=\"4\"\n              DTS:TextQualified=\"True\"\n              DTS:ObjectName=\"AverageRate\"\n              DTS:DTSID=\"{786CE995-4B7C-41CE-BE81-37933271E018}\"\n              DTS:CreationName=\"\" \/>\n            &lt;DTS:FlatFileColumn\n              DTS:ColumnType=\"Delimited\"\n              DTS:ColumnDelimiter=\"_x0009_\"\n              DTS:MaximumWidth=\"3\"\n              DTS:DataType=\"130\"\n              DTS:TextQualified=\"True\"\n              DTS:ObjectName=\"CurrencyID\"\n              DTS:DTSID=\"{7E5616A8-02FD-49A7-ADEC-AB276D909B75}\"\n              DTS:CreationName=\"\" \/>\n            &lt;DTS:FlatFileColumn\n              DTS:ColumnType=\"Delimited\"\n              DTS:ColumnDelimiter=\"_x0009_\"\n              DTS:DataType=\"133\"\n              DTS:TextQualified=\"True\"\n              DTS:ObjectName=\"CurrencyDate\"\n              DTS:DTSID=\"{AF15821D-08F4-4FAA-B167-262FE448C298}\"\n              DTS:CreationName=\"\" \/>\n            &lt;DTS:FlatFileColumn\n              DTS:ColumnType=\"Delimited\"\n              DTS:ColumnDelimiter=\"_x000D__x000A_\"\n              DTS:DataType=\"4\"\n              DTS:TextQualified=\"True\"\n              DTS:ObjectName=\"EndOfDayRate\"\n              DTS:DTSID=\"{B9FC32CE-DE09-4626-B539-7E50A8469675}\"\n              DTS:CreationName=\"\" \/>\n          &lt;\/DTS:FlatFileColumns>\n        &lt;\/DTS:ConnectionManager>\n      &lt;\/DTS:ObjectData>\n    &lt;\/DTS:ConnectionManager>\n  &lt;\/DTS:ConnectionManagers>\n  &lt;DTS:Variables \/>\n  &lt;DTS:Executables>\n    &lt;DTS:Executable\n      DTS:refId=\"Package\\Extract Sample Currency Data\"\n      DTS:ExecutableType=\"SSIS.Pipeline.3\"\n      DTS:TaskContact=\"Performs high-performance data extraction, transformation and loading;Microsoft Corporation; Microsoft SQL Server; (C) 2007 Microsoft Corporation; All Rights Reserved;http:\/\/www.microsoft.com\/sql\/support\/default.asp;1\"\n      DTS:LocaleID=\"-1\"\n      DTS:ObjectName=\"Extract Sample Currency Data\"\n      DTS:DTSID=\"{E967823D-AA98-44CA-8B5D-E29585E4C0F0}\"\n      DTS:Description=\"Data Flow Task\"\n      DTS:CreationName=\"SSIS.Pipeline.3\">\n      &lt;DTS:Variables \/>\n      &lt;DTS:ObjectData>\n        &lt;pipeline\n          version=\"1\">\n          &lt;components>\n            &lt;component\n              refId=\"Package\\Extract Sample Currency Data\\Extract Sample Currency Data\"\n              name=\"Extract Sample Currency Data\"\n              componentClassID=\"{D23FD76B-F51D-420F-BBCB-19CBF6AC1AB4}\"\n              description=\"Flat File Source\"\n              localeId=\"1033\"\n              usesDispositions=\"true\"\n              version=\"1\"\n              contactInfo=\"Flat File Source;Microsoft Corporation; Microsoft SQL Server; (C) Microsoft Corporation; All Rights Reserved; http:\/\/www.microsoft.com\/sql\/support;1\">\n              &lt;properties>\n                &lt;property\n                  name=\"RetainNulls\"\n                  dataType=\"System.Boolean\"\n                  description=\"Specifies whether zero-length columns are treated as null.\">false&lt;\/property>\n                &lt;property\n                  name=\"FileNameColumnName\"\n                  dataType=\"System.String\"\n                  description=\"Specifies the name of an output column containing the file name. If no name is specified, no output column containing the file name will be generated.\">&lt;\/property>\n              &lt;\/properties>\n              &lt;connections>\n...<\/pre>\n\n\n\n<p>dtsx \ud30c\uc77c\uc758 \uc0c1\uc138 \uad6c\uc870\ub294 \uc544\ub798 \ud398\uc774\uc9c0\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p><a href=\"https:\/\/docs.microsoft.com\/en-us\/openspecs\/sql_data_portability\/ms-dtsx\/235600e9-0c13-4b5b-a388-aa3c65aec1dd\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/docs.microsoft.com\/en-us\/openspecs\/sql_data_portability\/ms-dtsx\/235600e9-0c13-4b5b-a388-aa3c65aec1dd<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_SSIS_Util_Python_Code\"><\/span>3. SSIS_Util Python Code<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\uc18c\uc2a4\ucf54\ub4dc\ub294 \uc544\ub798 \uacbd\ub85c\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/DAToolset\/SSIS_Util\/blob\/main\/ssis_util.py\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/DAToolset\/SSIS_Util\/blob\/main\/ssis_util.py<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"31_%ED%95%84%EC%9A%94%ED%95%9C_Package_%EC%84%A4%EC%B9%98\"><\/span>3.1. \ud544\uc694\ud55c Package \uc124\uce58<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\uc774 \ucf54\ub4dc\ub97c \uc2e4\ud589\ud558\ub824\uba74 XML parser\ub85c lxml package \uc124\uce58\uac00 \ud544\uc694\ud558\ub2e4.<\/p>\n\n\n\n<pre id=\"code_1638639030287\" class=\"wp-block-code\"><code>pip install lxml<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"32_SQL_%EC%B6%94%EC%B6%9C_SSIS_Util_%EC%8B%A4%ED%96%89_%EB%B0%A9%EB%B2%95\"><\/span>3.2. SQL \ucd94\ucd9c : SSIS_Util \uc2e4\ud589 \ubc29\ubc95<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">python ssis_util.py --in_path &lt;dtdx file path> --out_path &lt;output sql file path><\/pre>\n\n\n\n<p>in_path\uc5d0 \uc9c0\uc815\ud55c \uacbd\ub85c\uc758 \ud558\uc704 \uc804\uccb4 \uacbd\ub85c\ub97c \uc7ac\uadc0 \ud0d0\uc0c9\ud558\uc5ec .dtsx \ud30c\uc77c\uc744 \ucc3e\uace0, \ud574\ub2f9 \ud30c\uc77c\uc5d0\uc11c SQL \ub0b4\uc6a9\uc744 \ucd94\ucd9c\ud558\uc5ec out_path\uc5d0 \uc800\uc7a5\ud55c\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"33_SQL_%EC%B6%94%EC%B6%9C_%EC%A0%84%EC%B2%B4_%EC%86%8C%EC%8A%A4%EC%BD%94%EB%93%9C\"><\/span>3.3. SQL \ucd94\ucd9c \uc804\uccb4 \uc18c\uc2a4\ucf54\ub4dc<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\uc804\uccb4 \uc18c\uc2a4\ucf54\ub4dc\ub97c \uc544\ub798\uc5d0 \ubd99\uc5ec\ub454\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"7,38,56,70,85,112,117-126,139,188,192-198\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">from lxml import etree\nimport os\nimport datetime\nimport csv\nimport argparse\n\n# region XML Tag definition\npfx = '{www.microsoft.com\/'\ntag_Executable = pfx + 'SqlServer\/Dts}Executable'\ntag_ObjectName = pfx + 'SqlServer\/Dts}ObjectName'\natr_refId = pfx + 'SqlServer\/Dts}refId'\ntag_Objectdata = pfx + 'SqlServer\/Dts}ObjectData'\ntag_SqlTaskData = pfx + 'sqlserver\/dts\/tasks\/sqltask}SqlTaskData'\natr_ConnectionID = pfx + 'sqlserver\/dts\/tasks\/sqltask}Connection'\natr_SqlStatementSource = pfx + 'sqlserver\/dts\/tasks\/sqltask}SqlStatementSource'\natr_Disabled = pfx + 'SqlServer\/Dts}Disabled'\n\n# precedence\ntag_PrecedenceConstraint = pfx + 'SqlServer\/Dts}PrecedenceConstraint'\ntag_From = pfx + 'SqlServer\/Dts}From'\ntag_To = pfx + 'SqlServer\/Dts}To'\n\n# connection\ntag_ConnectionManager = pfx + 'SqlServer\/Dts}ConnectionManager'\ntag_CreationName = pfx + 'SqlServer\/Dts}CreationName'\natr_ConnectionString = pfx + 'SqlServer\/Dts}ConnectionString'\natr_DTSID = pfx + 'SqlServer\/Dts}DTSID'\n\n# variable\ntag_Variable = pfx + 'SqlServer\/Dts}Variable'\ntag_Expression = pfx + 'SqlServer\/Dts}Expression'\ntag_Namespace = pfx + 'SqlServer\/Dts}Namespace'\n# endregion\n\n\ndef get_sql_using_xpath(file_name) -> (str, dict):\n\n    tree = etree.parse(file_name)\n    root = tree.getroot()\n\n    con_dic = {}  # Key: ConnectionName , Value: ConnectionProperty\n    con_id_dic = {}  # Key: ConnectionID , Value: ConnectionName\n    con_cnt = 0\n    var_dic = {}  # Key: \"NameSpace::ObjectName\", Value: Expression, etc...\n\n    for ele in root.findall(f'.\/\/{tag_ConnectionManager}[@{atr_DTSID}]'):  # extract connection list\n        con_cnt += 1\n        con_id = ele.attrib[atr_DTSID]\n        con_name = ele.attrib[tag_ObjectName]\n        cre_name = ele.attrib[tag_CreationName]\n        con_str = \"\"\n        con_ele = ele.find(f'.\/\/{tag_Objectdata}\/{tag_ConnectionManager}')\n        if con_ele is not None and atr_ConnectionString in con_ele.attrib:\n            con_str = con_ele.attrib[atr_ConnectionString]\n        con_id_dic[con_id] = con_name\n        con_dic[con_name] = f'{con_cnt}. {con_name}\\n  - CreationName:{cre_name}\\n  - ConnectionString:[{con_str}]'\n    con_text = '\\n\\n'.join(f'{v}' for k, v in con_dic.items())\n\n    for ele in root.findall(f'.\/\/{tag_Variable}[@{tag_Expression}]'):  # extract variable list\n        var_name = ele.attrib[tag_Namespace] + \"::\" + ele.attrib[tag_ObjectName]  # Key: \"NameSpace::ObjectName\"\n        var_val = ele.attrib[tag_Expression]\n        var_dic[var_name] = var_val\n\n    sql_str = \"\"\n    for ele in root.findall(f'.\/\/{tag_Executable}\/{tag_Objectdata}\/{tag_SqlTaskData}\/..\/..'):  # extract SQL list\n        if atr_refId not in ele.attrib:\n            continue\n        ref_id = ele.attrib[atr_refId]\n        sql_ele = ele.find(f'.\/\/{tag_Objectdata}\/{tag_SqlTaskData}[@{atr_SqlStatementSource}]')\n        if is_disabled(ele):  # exclude Disabled task(also ancestor Elements)\n            continue\n        tsk_sql_str = \"\"\n        tsk_con_name = \"\"\n        tsk_con_str = \"\"\n        if sql_ele is not None:\n            tsk_con_id = sql_ele.attrib[atr_ConnectionID]\n            tsk_con_name = con_id_dic[tsk_con_id]\n            tsk_con_str = con_dic[tsk_con_name]\n            tsk_sql_str = sql_ele.attrib[atr_SqlStatementSource]\n            sql_str += f'\/* [Control Flow(\uc81c\uc5b4 \ud750\ub984) TaskName: {ref_id}]\\n   [Connection: {tsk_con_str}]\\n*\/\\n{tsk_sql_str}'\n            sql_str += get_line_separator()\n\n    data_flow_str = \"\"\n    for ele in root.findall(f'.\/\/pipeline\/components\/component[@refId]'):  # extract data flow list\n        if is_disabled(ele):  # exclude Disabled task(also ancestor Elements)\n            continue\n        ref_id = ele.attrib['refId']\n        sql_cmd_var_str = \"\"; sql_cmd_str = \"\"; open_rowset_str = \"\"\n        sql_cmd_var_ele = ele.find(f'.\/\/property[@name=\"SqlCommandVariable\"]')\n        if sql_cmd_var_ele is not None:\n            sql_cmd_var_str = sql_cmd_var_ele.text\n        sql_cmd_ele = ele.find(f'.\/\/property[@name=\"SqlCommand\"]')\n        if sql_cmd_ele is not None:\n            sql_cmd_str = sql_cmd_ele.text\n        open_rowset_ele = ele.find(f'.\/\/property[@name=\"OpenRowset\"]')\n        if open_rowset_ele is not None and open_rowset_ele.text is not None:\n            open_rowset_str = \"OpenRowset: \" + open_rowset_ele.text\n        str_list = [sql_cmd_var_str, sql_cmd_str, open_rowset_str]\n        try:\n            data_flow_val = next(s for s in str_list if s)\n        except:\n            data_flow_val = ''\n\n        con_str = ''\n        con_ele = ele.find(f'.\/\/connections\/connection[@connectionManagerID]')\n        if con_ele is not None:\n            con_str = con_ele.attrib['connectionManagerID']\n        data_flow_str += f'\/* [Data Flow(\ub370\uc774\ud130 \ud750\ub984) TaskName: {ref_id}]\\n   [Connection: {con_str}] *\/\\n{data_flow_val}'\n        data_flow_str += get_line_separator()\n\n    prd_text = \"\"\n    for ele in root.findall(f'.\/\/{tag_PrecedenceConstraint}[@{tag_From}]'):  # make precedence string\n        prd_from = ele.attrib[tag_From]\n        prd_to = ele.attrib[tag_To]\n        prd_text += f'[{prd_from}] --> [{prd_to}]\\n'\n\n    result_str = f\"\"\"\/* Precedence Constraint(\uc2e4\ud589 \uc21c\uc11c)\n{prd_text}*\/\n{get_line_separator()}\n\/* Connections(\uc5f0\uacb0 \uc815\ubcf4)\n{con_text}\n*\/\n{get_line_separator()}\n{data_flow_str}\n{get_line_separator()}\n{sql_str}\"\"\"\n\n    return result_str, con_dic\n\n\ndef get_current_datetime() -> str:\n    return datetime.datetime.now().strftime(\"%Y-%m-%d %H:%M:%S.%f\")\n\n\ndef get_line_separator() -> str:\n    return f'\\n\\n\/*{\"*\" * 100}*\/\\n\\n'\n\n\ndef is_disabled(ele) -> bool:\n    \"\"\"check if the element has 'Disabled' attribute and it's value is 'True', and check parent element\"\"\"\n    if atr_Disabled in ele.attrib and ele.attrib[atr_Disabled].lower() == \"true\":\n        return True\n    else:\n        pele = ele.find('..')\n        if pele is None:\n            return False\n        else:\n            return is_disabled(pele)\n\n\ndef main():\n    parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter)\n    parser.add_argument('--in_path', required=True, type=str,\n                        help='input path with dtsx files')\n    parser.add_argument('--out_path', required=True, type=str,\n                        help='output path with extracted sql files from dtsx files')\n    args = parser.parse_args()\n    in_path = os.path.abspath(args.in_path)\n    out_path = os.path.abspath(args.out_path)\n    file_list = []\n    print(f'[{get_current_datetime()}] Start Get File List...')\n    in_abspath = os.path.abspath(in_path)  # os.path.abspath('.') + '\\\\test_files'\n    file_types = ('.dtsx',)\n    for root, dir, files in os.walk(in_abspath):\n        for file in sorted(files):\n            # exclude\n            if file.startswith('~'):\n                continue\n            # include\n            if file.endswith(file_types):\n                file_list.append(root + '\\\\' + file)\n\n    print(f'[{get_current_datetime()}] Finish Get File List. ({len(file_list)} files)')\n\n    print(f'[{get_current_datetime()}] Start Extract File Contents...')\n    con_list = []\n    for dtsx_file in file_list:\n        print(dtsx_file)\n        sql_file = dtsx_file.replace(in_path, out_path) + \".sql\"\n        sql_file_dir = os.path.dirname(sql_file)\n        os.makedirs(name=sql_file_dir, exist_ok=True)\n        result_str, con_dic = get_sql_using_xpath(dtsx_file)\n        tmp_list = []\n        for k, v in con_dic.items():\n            tmp_list.append([dtsx_file, sql_file, k, v])\n        if len(tmp_list) > 0:\n            con_list.append(tmp_list)\n        with open(sql_file, \"w\", encoding=\"utf8\") as file:\n            file.write(result_str)\n\n    csv_file = out_path + \"\\\\con_sql.csv\"\n    with open(csv_file, 'w', newline='', encoding='ansi') as file:\n        writer = csv.writer(file)\n        writer.writerow([\"dtsx_file\", \"sql_file\", \"connection name\", \"connection property\"])\n        # writer.writerow(con_list)\n        for con in con_list:\n            for con2 in con:\n                writer.writerow(con2)\n\n    print(f'[{get_current_datetime()}] Finish Extract File Contents. ({len(file_list)} files)')\n\n\nif __name__ == '__main__':\n    main()\n\n# sample dtsx file: https:\/\/github.com\/LearningTechStuff\/SSIS-Tutorial<\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>7\ud589: NameSpace\uac00 \uc788\ub294 XML\uc740 tag\uc640 attribute\uc5d0 \ud574\ub2f9 NameSpace\ub97c \uba85\uc2dc\ud574\uc57c \ud55c\ub2e4. NameSpace\ub97c \ubc18\ubcf5\uc801\uc73c\ub85c \ubb38\uc790\uc5f4\ub85c \uc791\uc131\ud558\uba74 \ucf54\ub4dc \uac00\ub3c5\uc131\uc774 \ub5a8\uc5b4\uc838\uc11c \ubcc4\ub3c4\uc758 \ubcc0\uc218\ub85c \ubbf8\ub9ac \uc120\uc5b8\ud574 \ub454\ub2e4.<\/li><li>38\ud589: lxml package\ub85c \uc785\ub825 \ud30c\uc77c\uc744 parsing \ud55c\ub2e4.<\/li><li>46\ud589: XPath \uad6c\ubb38\uc73c\ub85c connection \uc815\ubcf4\ub97c \uc21c\ud68c\ud55c\ub2e4.<\/li><li>56\ud589: connection \uc815\ubcf4\ub97c \ubcc4\ub3c4\uc758 dictionary\uc5d0 \uc800\uc7a5\ud55c\ub2e4. key\ub294 connection\uba85, value\ub294 connection \ubb38\uc790\uc5f4\uc774\ub2e4. \uc774 \uc815\ubcf4\ub294 78\ud589\uc5d0\uc11c task\uc758 connection\uba85\uc73c\ub85c connection \ubb38\uc790\uc5f4\uc744 \uc5bb\uc744 \ub54c \uc0ac\uc6a9\ud55c\ub2e4.<\/li><li>70\ud589, 85\ud589: \uc790\uae30 \uc790\uc2e0 node\ub97c \ud3ec\ud568\ud558\uc5ec \uc870\uc0c1(ancestor) node \uc911 \ud558\ub098\ub77c\ub3c4 disabled\ub77c\uba74 \ucd94\ucd9c\ud558\uc9c0 \uc54a\ub3c4\ub85d \ud55c\ub2e4. \uc774 \ucf54\ub4dc\ub294 \ubd88\ud544\uc694\ud55c \uc815\ubcf4\ub97c \ucd94\ucd9c\ud558\uc9c0 \uc54a\uc73c\ub824\uace0 \ucd94\uac00\ud588\ub2e4. \uc804\uccb4 \uc815\ubcf4\ub97c \ucd94\ucd9c\ud558\ub824\uba74 \uc774 \ucf54\ub4dc\ub97c \uc8fc\uc11d \ucc98\ub9ac\ud558\uba74 \ub41c\ub2e4.<\/li><li>112\ud589: \uc791\uc5c5 \uc120\ud589\/\ud6c4\ud589 \uad00\uacc4\ub97c \ucd94\ucd9c\ud55c\ub2e4.<\/li><li>117~126\ud589: \ucd94\ucd9c\ud55c \uc804\uccb4 \uc815\ubcf4\ub97c \uc800\uc7a5\ud558\uae30 \uc704\ud55c \uad6c\uc870\ub85c \uad6c\uc131\ud55c\ub2e4.<\/li><li>139\ud589: 70\ud589, 85\ud589\uc5d0\uc11c \ud638\ucd9c\ud558\ub294 \ud568\uc218\uc774\ub2e4. \ud55c \ub2e8\uacc4 \uc704\uc758 \uc870\uc0c1\uc744 \ud655\uc778\ud558\uae30 \uc704\ud558\uc5ec \uc7ac\uadc0\uc801\uc73c\ub85c \ud638\ucd9c\ud55c\ub2e4.<\/li><li>188\ud589: 117~126\ud589\uc5d0\uc11c \ub9cc\ub4e4\uc5b4\uc9c4 \ucd94\ucd9c \uacb0\uacfc\ub97c .sql \ud30c\uc77c\ub85c \uc800\uc7a5\ud55c\ub2e4.<\/li><li>192~198\ud589: 56\ud589\uc5d0\uc11c \ub9cc\ub4e4\uc5b4 \ub454 connection \uc815\ubcf4\ub97c \ubaa8\ub450 \ubaa8\uc544\uc11c \ubcc4\ub3c4\uc758 csv \ud30c\uc77c\ub85c \uc800\uc7a5\ud55c\ub2e4.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"4._SSIS_Util_\ucd9c\ub825_\uacb0\uacfc_\uc608\uc2dc\"><span class=\"ez-toc-section\" id=\"4_SSIS_Util_%EC%B6%9C%EB%A0%A5_%EA%B2%B0%EA%B3%BC_%EC%98%88%EC%8B%9C\"><\/span>4. SSIS_Util \ucd9c\ub825 \uacb0\uacfc \uc608\uc2dc<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"4.1._sql_\ud30c\uc77c_\uc608\uc2dc\"><span class=\"ez-toc-section\" id=\"41_SQL_%EC%B6%94%EC%B6%9C_%EA%B2%B0%EA%B3%BC_%ED%8C%8C%EC%9D%BC_%EC%98%88%EC%8B%9C\"><\/span>4.1. SQL \ucd94\ucd9c \uacb0\uacfc \ud30c\uc77c \uc608\uc2dc<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/* Precedence Constraint(\uc2e4\ud589 \uc21c\uc11c)\n[Package\\Foreach \ub8e8\ud504 \ucee8\ud14c\uc774\ub108\\\uc2dc\ud000\uc2a4 \ucee8\ud14c\uc774\ub108\\task1] --> [Package\\Foreach \ub8e8\ud504 \ucee8\ud14c\uc774\ub108\\\uc2dc\ud000\uc2a4 \ucee8\ud14c\uc774\ub108\\task2]\n[Package\\Foreach \ub8e8\ud504 \ucee8\ud14c\uc774\ub108\\\uc2dc\ud000\uc2a4 \ucee8\ud14c\uc774\ub108\\task2] --> [Package\\Foreach \ub8e8\ud504 \ucee8\ud14c\uc774\ub108\\\uc2dc\ud000\uc2a4 \ucee8\ud14c\uc774\ub108\\task3]\n[Package\\Foreach \ub8e8\ud504 \ucee8\ud14c\uc774\ub108\\\uc2dc\ud000\uc2a4 \ucee8\ud14c\uc774\ub108\\task3] --> [Package\\Foreach \ub8e8\ud504 \ucee8\ud14c\uc774\ub108\\\uc2dc\ud000\uc2a4 \ucee8\ud14c\uc774\ub108\\task4]\n[Package\\Foreach \ub8e8\ud504 \ucee8\ud14c\uc774\ub108\\\uc2dc\ud000\uc2a4 \ucee8\ud14c\uc774\ub108\\task4] --> [Package\\Foreach \ub8e8\ud504 \ucee8\ud14c\uc774\ub108\\\uc2dc\ud000\uc2a4 \ucee8\ud14c\uc774\ub108\\task5]\n*\/\n\n\n\/******************************************************************************************************\/\n\n\n\/* Connections(\uc5f0\uacb0 \uc815\ubcf4)\n1. key \uce90\uc2dc\uc5f0\uacb0\n  - CreationName:CACHE\n  - ConnectionString:[]\n\n2. 10.x.x.1.admin.admin\n  - CreationName:OLEDB\n  - ConnectionString:[Data Source=10.x.x.1;User ID=admin;Initial Catalog=admin;Provider=SQLNCLI11;Persist Security Info=True;Auto Translate=False;]\n\n3. 10.x.x.1.db3.admin\n  - CreationName:OLEDB\n  - ConnectionString:[Data Source=10.x.x.1;User ID=admin;Initial Catalog=db3;Provider=SQLNCLI11;Persist Security Info=True;Auto Translate=False;]\n\n4. 10.x.x.1.db3.admin\n  - CreationName:OLEDB\n  - ConnectionString:[Data Source=10.x.x.1;Initial Catalog=db4;Provider=SQLNCLI11;Integrated Security=SSPI;]\n\n5. localhost.db2\n  - CreationName:OLEDB\n  - ConnectionString:[Data Source=10.x.x.2;User ID=admin;Initial Catalog=db2;Provider=SQLNCLI11;Persist Security Info=True;Auto Translate=False;]\n\n6. localhost.db1\n  - CreationName:OLEDB\n  - ConnectionString:[Data Source=10.x.x.3;User ID=admin;Initial Catalog=db1;Provider=SQLNCLI11;Persist Security Info=True;Auto Translate=False;]\n*\/\n\n\n\/******************************************************************************************************\/\n\n\/* [Data Flow(\ub370\uc774\ud130 \ud750\ub984) TaskName: Package\\update\\task4 Source]\n   [Connection: Package.ConnectionManagers[10.x.x.4.db6.admin]] *\/\nselect ...\n  from ...\n\n\/******************************************************************************************************\/\n\n\/* [Data Flow(\ub370\uc774\ud130 \ud750\ub984) TaskName: Package\\update\\task4 Target]\n   [Connection: Package.ConnectionManagers[localhost.db1]] *\/\nOpenRowset: [dbo].[table1]\n\n\/******************************************************************************************************\/\n\n\n\/* [Control Flow(\uc81c\uc5b4 \ud750\ub984) TaskName: Package\\Foreach \ub8e8\ud504 \ucee8\ud14c\uc774\ub108\\\uc2dc\ud000\uc2a4 \ucee8\ud14c\uc774\ub108\\task1]\n   [Connection: 6. localhost.db1\n  - CreationName:OLEDB\n  - ConnectionString:[Data Source=10.x.x.3;User ID=admin;Initial Catalog=db1;Provider=SQLNCLI11;Persist Security Info=True;Auto Translate=False;]]\n*\/\ndelete from ... where dt = @dt\n\ninsert ...\n(...)\nselect\n...\nfrom (\n    select \n        ...\n    from #tempp a\n        inner join ... b\n            on ...\n    where (...)\n) t\nwhere ...\n\n\/******************************************************************************************************\/\n\n\/* [Control Flow(\uc81c\uc5b4 \ud750\ub984) TaskName: Package\\Foreach \ub8e8\ud504 \ucee8\ud14c\uc774\ub108\\\uc2dc\ud000\uc2a4 \ucee8\ud14c\uc774\ub108\\task2]\n   [Connection: 5. localhost.db2\n  - CreationName:OLEDB\n  - ConnectionString:[Data Source=10.x.x.2;User ID=admin;Initial Catalog=db2;Provider=SQLNCLI11;Persist Security Info=True;Auto Translate=False;]]\n*\/\nif object_id('tempdb.dbo.#tempp') is not null\n    drop table #tempp\n\nselect\n     ...\n  into #tempp\n  from ... a\n where dt = @dt\n group by ...\n\nmerge ... a\n    using (...) b\n        on ...\nwhen not matched then \n    insert(...)\n    values(...);\n\n\/******************************************************************************************************\/\n\n\/* [Control Flow(\uc81c\uc5b4 \ud750\ub984) TaskName: Package\\Foreach \ub8e8\ud504 \ucee8\ud14c\uc774\ub108\\\uc2dc\ud000\uc2a4 \ucee8\ud14c\uc774\ub108\\task3]\n   [Connection: 3. localhost.db3\n  - CreationName:OLEDB\n  - ConnectionString:[Data Source=10.x.x.1;User ID=admin;Initial Catalog=db3;Provider=SQLNCLI11;Persist Security Info=True;Auto Translate=False;]]\n*\/\n\nupdate b\n   set ...\n  from ... a\n       inner join ... b\n        on ...\nwhere ...\n\n\/******************************************************************************************************\/\n\n\/* [Control Flow(\uc81c\uc5b4 \ud750\ub984) TaskName: Package\\Foreach \ub8e8\ud504 \ucee8\ud14c\uc774\ub108\\\uc2dc\ud000\uc2a4 \ucee8\ud14c\uc774\ub108\\task4]\n   [Connection: 4. localhost.db4\n  - CreationName:OLEDB\n  - ConnectionString:[Data Source=10.x.x.1;Initial Catalog=db4;Provider=SQLNCLI11;Integrated Security=SSPI;]]\n*\/\nupdate b\n   set ...\n  from ... a\n       inner join ... b\n        on ...\nwhere ...\n\n\/******************************************************************************************************\/\n\n\/* [Control Flow(\uc81c\uc5b4 \ud750\ub984) TaskName: Package\\Foreach \ub8e8\ud504 \ucee8\ud14c\uc774\ub108\\\uc2dc\ud000\uc2a4 \ucee8\ud14c\uc774\ub108\\task5]\n   [Connection: 2. localhost.admin\n  - CreationName:OLEDB\n  - ConnectionString:[Data Source=10.x.x.1;User ID=admin;Initial Catalog=admin;Provider=SQLNCLI11;Persist Security Info=True;Auto Translate=False;]]\n*\/\nif object_id('tempdb.dbo.#tempm') is not null\n    drop table #tempm\n\nselect\n      ...\n  into #tempm\n  from a\n where a.dt = @dt\n\nmerge ... a\nusing (...) b\n   on ...\n  and ...\nwhen not matched then\n    insert (...)\n    values (...);\n\n\/******************************************************************************************************\/<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"4.2._.csv_\ud30c\uc77c_\uc608\uc2dc\"><span class=\"ez-toc-section\" id=\"42_csv_%ED%8C%8C%EC%9D%BC_%EC%98%88%EC%8B%9C\"><\/span>4.2. csv \ud30c\uc77c \uc608\uc2dc<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>csv \ud30c\uc77c\uc740 dtsx_file, sql_file, connection name, connection property \uc815\ubcf4\ub97c \ud3ec\ud568\ud55c\ub2e4.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-133.png\"><img loading=\"lazy\" decoding=\"async\" width=\"937\" height=\"890\" src=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-133.png\" alt=\"SSIS_Util \ucd9c\ub825 csv \ud30c\uc77c \uc608\uc2dc\" class=\"wp-image-12139\" srcset=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-133.png 937w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-133-300x285.png 300w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-133-768x729.png 768w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-133-13x12.png 13w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-133-24x24.png 24w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-133-36x34.png 36w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-133-48x46.png 48w\" sizes=\"auto, (max-width: 937px) 100vw, 937px\" \/><\/a><figcaption>SSIS_Util \ucd9c\ub825 csv \ud30c\uc77c \uc608\uc2dc<\/figcaption><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-dots\"\/>\n\n\n\n<p>SSIS\ub97c \uc0ac\uc6a9\ud558\ub294 \ud658\uacbd\uc5d0\uc11c \uc804\uccb4 \uad00\uc810\uc758 \ubd84\uc11d\uc774 \ud544\uc694\ud560 \uacbd\uc6b0 \uc720\uc6a9\ud558\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc744 \uac83\uc73c\ub85c \uae30\ub300\ud55c\ub2e4.<\/p>\n\n\n\n<p>\uc18c\uc2a4\ucf54\ub4dc\uc758 \ubc84\uadf8 \ub610\ub294 \uac1c\uc120\uc0ac\ud56d\uc774 \uc788\uc73c\uba74 \ub313\uae00\ub85c \ub0a8\uaca8\uc8fc\uae30 \ubc14\ub780\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5728\u6700\u8fd1\u4f7f\u7528 SSIS\uff08SQL Server Integration Services\uff09\u7684\u5de5\u4f5c\u4e2d\uff0c\u6211\u4eec\u7814\u7a76\u4e86\u4e00\u79cd\u4ece\u7b80\u5355\u7684 SSIS \u5305\u6587\u4ef6\u4e2d\u63d0\u53d6 SQL \u4ee5\u8fdb\u884c SQL \u5206\u6790\u7684\u5de5\u5177\u3002\u60a8\u53ef\u4ee5\u67e5\u770b\u6267\u884c\u65b9\u6cd5\u3001\u6e90\u4ee3\u7801\u3001sql\u6587\u4ef6\u548ccsv\u6587\u4ef6\u8f93\u51fa\u7ed3\u679c\u793a\u4f8b\u3002\u4e00\u3001SSIS\u548cSSIS_Util\u6982\u8ff0 1.1\uff0e SSIS...<\/p>","protected":false},"author":1,"featured_media":12138,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35],"tags":[],"class_list":["post-12137","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SSIS_Util: SSIS package file(.dtsx)\uc5d0\uc11c SQL \ucd94\ucd9c\ud558\ub294 \ub3c4\uad6c - \uc0dd\uc0b0\uc131 Skill<\/title>\n<meta name=\"description\" content=\"\ucd5c\uadfc SSIS(SQL Server Integration Services)\ub97c \uc0ac\uc6a9\ud558\ub294 \uc5c5\ubb34 \uc911\uc5d0 SQL \ubd84\uc11d\uc744 \uc704\ud574 \uac04\ub2e8\ud788 \uc81c\uc791\ud55c SSIS package file\uc5d0\uc11c SQL \ucd94\ucd9c \ud558\ub294 \ub3c4\uad6c\uc5d0 \ub300\ud574 \uc0b4\ud3b4\ubcf8\ub2e4.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prodskill.com\/zh\/extract-sql-from-ssis-package-file\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SSIS_Util: SSIS package file(.dtsx)\uc5d0\uc11c SQL \ucd94\ucd9c\ud558\ub294 \ub3c4\uad6c - \uc0dd\uc0b0\uc131 Skill\" \/>\n<meta property=\"og:description\" content=\"\ucd5c\uadfc SSIS(SQL Server Integration Services)\ub97c \uc0ac\uc6a9\ud558\ub294 \uc5c5\ubb34 \uc911\uc5d0 SQL \ubd84\uc11d\uc744 \uc704\ud574 \uac04\ub2e8\ud788 \uc81c\uc791\ud55c SSIS package file\uc5d0\uc11c SQL \ucd94\ucd9c \ud558\ub294 \ub3c4\uad6c\uc5d0 \ub300\ud574 \uc0b4\ud3b4\ubcf8\ub2e4.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prodskill.com\/zh\/extract-sql-from-ssis-package-file\/\" \/>\n<meta property=\"og:site_name\" content=\"\uc0dd\uc0b0\uc131 Skill\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-07T09:10:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-10-07T09:10:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-132.png\" \/>\n\t<meta property=\"og:image:width\" content=\"726\" \/>\n\t<meta property=\"og:image:height\" content=\"769\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Zerom\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"Zerom\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/\"},\"author\":{\"name\":\"Zerom\",\"@id\":\"https:\/\/prodskill.com\/ko\/#\/schema\/person\/bbad0870c78008c82edbe0960fe768bd\"},\"headline\":\"SSIS_Util: SSIS package file(.dtsx)\uc5d0\uc11c SQL \ucd94\ucd9c\ud558\ub294 \ub3c4\uad6c\",\"datePublished\":\"2022-10-07T09:10:38+00:00\",\"dateModified\":\"2022-10-07T09:10:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/\"},\"wordCount\":212,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/prodskill.com\/ko\/#\/schema\/person\/bbad0870c78008c82edbe0960fe768bd\"},\"image\":{\"@id\":\"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-132.png\",\"articleSection\":[\"Python\"],\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/\",\"url\":\"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/\",\"name\":\"SSIS_Util: SSIS package file(.dtsx)\uc5d0\uc11c SQL \ucd94\ucd9c\ud558\ub294 \ub3c4\uad6c - \uc0dd\uc0b0\uc131 Skill\",\"isPartOf\":{\"@id\":\"https:\/\/prodskill.com\/ko\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-132.png\",\"datePublished\":\"2022-10-07T09:10:38+00:00\",\"dateModified\":\"2022-10-07T09:10:39+00:00\",\"description\":\"\ucd5c\uadfc SSIS(SQL Server Integration Services)\ub97c \uc0ac\uc6a9\ud558\ub294 \uc5c5\ubb34 \uc911\uc5d0 SQL \ubd84\uc11d\uc744 \uc704\ud574 \uac04\ub2e8\ud788 \uc81c\uc791\ud55c SSIS package file\uc5d0\uc11c SQL \ucd94\ucd9c \ud558\ub294 \ub3c4\uad6c\uc5d0 \ub300\ud574 \uc0b4\ud3b4\ubcf8\ub2e4.\",\"breadcrumb\":{\"@id\":\"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/#primaryimage\",\"url\":\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-132.png\",\"contentUrl\":\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-132.png\",\"width\":726,\"height\":769},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/prodskill.com\/ko\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SSIS_Util: SSIS package file(.dtsx)\uc5d0\uc11c SQL \ucd94\ucd9c\ud558\ub294 \ub3c4\uad6c\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/prodskill.com\/ko\/#website\",\"url\":\"https:\/\/prodskill.com\/ko\/\",\"name\":\"\uc0dd\uc0b0\uc131 Skill\",\"description\":\"Meta Thinking, Meta Working\",\"publisher\":{\"@id\":\"https:\/\/prodskill.com\/ko\/#\/schema\/person\/bbad0870c78008c82edbe0960fe768bd\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/prodskill.com\/ko\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-Hans\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/prodskill.com\/ko\/#\/schema\/person\/bbad0870c78008c82edbe0960fe768bd\",\"name\":\"Zerom\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/09\/productivity_clockgear.png\",\"url\":\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/09\/productivity_clockgear.png\",\"contentUrl\":\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/09\/productivity_clockgear.png\",\"width\":512,\"height\":512,\"caption\":\"Zerom\"},\"logo\":{\"@id\":\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/09\/productivity_clockgear.png\"},\"url\":\"https:\/\/prodskill.com\/zh\/author\/proda\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SSIS_Util\uff1a\u4ece SSIS \u5305\u6587\u4ef6\uff08.dtsx\uff09\u4e2d\u63d0\u53d6 SQL \u7684\u5de5\u5177 - \u751f\u4ea7\u529b\u6280\u80fd","description":"\u6700\u8fd1\uff0c\u6211\u6b63\u5728\u7814\u7a76\u4e00\u79cd\u5de5\u5177\uff0c\u8be5\u5de5\u5177\u53ef\u4ee5\u4ece\u5728\u5904\u7406 SSIS\uff08SQL Server Integration Services\uff09\u65f6\u4e3a SQL \u5206\u6790\u800c\u521b\u5efa\u7684\u7b80\u5355 SSIS \u5305\u6587\u4ef6\u4e2d\u63d0\u53d6 SQL\u3002.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prodskill.com\/zh\/extract-sql-from-ssis-package-file\/","og_locale":"zh_CN","og_type":"article","og_title":"SSIS_Util: SSIS package file(.dtsx)\uc5d0\uc11c SQL \ucd94\ucd9c\ud558\ub294 \ub3c4\uad6c - \uc0dd\uc0b0\uc131 Skill","og_description":"\ucd5c\uadfc SSIS(SQL Server Integration Services)\ub97c \uc0ac\uc6a9\ud558\ub294 \uc5c5\ubb34 \uc911\uc5d0 SQL \ubd84\uc11d\uc744 \uc704\ud574 \uac04\ub2e8\ud788 \uc81c\uc791\ud55c SSIS package file\uc5d0\uc11c SQL \ucd94\ucd9c \ud558\ub294 \ub3c4\uad6c\uc5d0 \ub300\ud574 \uc0b4\ud3b4\ubcf8\ub2e4.","og_url":"https:\/\/prodskill.com\/zh\/extract-sql-from-ssis-package-file\/","og_site_name":"\uc0dd\uc0b0\uc131 Skill","article_published_time":"2022-10-07T09:10:38+00:00","article_modified_time":"2022-10-07T09:10:39+00:00","og_image":[{"width":726,"height":769,"url":"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-132.png","type":"image\/png"}],"author":"Zerom","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"Zerom","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"11 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/#article","isPartOf":{"@id":"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/"},"author":{"name":"Zerom","@id":"https:\/\/prodskill.com\/ko\/#\/schema\/person\/bbad0870c78008c82edbe0960fe768bd"},"headline":"SSIS_Util: SSIS package file(.dtsx)\uc5d0\uc11c SQL \ucd94\ucd9c\ud558\ub294 \ub3c4\uad6c","datePublished":"2022-10-07T09:10:38+00:00","dateModified":"2022-10-07T09:10:39+00:00","mainEntityOfPage":{"@id":"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/"},"wordCount":212,"commentCount":0,"publisher":{"@id":"https:\/\/prodskill.com\/ko\/#\/schema\/person\/bbad0870c78008c82edbe0960fe768bd"},"image":{"@id":"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/#primaryimage"},"thumbnailUrl":"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-132.png","articleSection":["Python"],"inLanguage":"zh-Hans","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/","url":"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/","name":"SSIS_Util\uff1a\u4ece SSIS \u5305\u6587\u4ef6\uff08.dtsx\uff09\u4e2d\u63d0\u53d6 SQL \u7684\u5de5\u5177 - \u751f\u4ea7\u529b\u6280\u80fd","isPartOf":{"@id":"https:\/\/prodskill.com\/ko\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/#primaryimage"},"image":{"@id":"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/#primaryimage"},"thumbnailUrl":"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-132.png","datePublished":"2022-10-07T09:10:38+00:00","dateModified":"2022-10-07T09:10:39+00:00","description":"\u6700\u8fd1\uff0c\u6211\u6b63\u5728\u7814\u7a76\u4e00\u79cd\u5de5\u5177\uff0c\u8be5\u5de5\u5177\u53ef\u4ee5\u4ece\u5728\u5904\u7406 SSIS\uff08SQL Server Integration Services\uff09\u65f6\u4e3a SQL \u5206\u6790\u800c\u521b\u5efa\u7684\u7b80\u5355 SSIS \u5305\u6587\u4ef6\u4e2d\u63d0\u53d6 SQL\u3002.","breadcrumb":{"@id":"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/"]}]},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/#primaryimage","url":"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-132.png","contentUrl":"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-132.png","width":726,"height":769},{"@type":"BreadcrumbList","@id":"https:\/\/prodskill.com\/extract-sql-from-ssis-package-file\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/prodskill.com\/ko\/"},{"@type":"ListItem","position":2,"name":"SSIS_Util: SSIS package file(.dtsx)\uc5d0\uc11c SQL \ucd94\ucd9c\ud558\ub294 \ub3c4\uad6c"}]},{"@type":"WebSite","@id":"https:\/\/prodskill.com\/ko\/#website","url":"https:\/\/prodskill.com\/ko\/","name":"\u751f\u4ea7\u529b\u6280\u80fd","description":"\u5143\u601d\u7ef4\uff0c\u5143\u5de5\u4f5c","publisher":{"@id":"https:\/\/prodskill.com\/ko\/#\/schema\/person\/bbad0870c78008c82edbe0960fe768bd"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/prodskill.com\/ko\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-Hans"},{"@type":["Person","Organization"],"@id":"https:\/\/prodskill.com\/ko\/#\/schema\/person\/bbad0870c78008c82edbe0960fe768bd","name":"\u6cfd\u7f57\u59c6","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/09\/productivity_clockgear.png","url":"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/09\/productivity_clockgear.png","contentUrl":"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/09\/productivity_clockgear.png","width":512,"height":512,"caption":"Zerom"},"logo":{"@id":"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/09\/productivity_clockgear.png"},"url":"https:\/\/prodskill.com\/zh\/author\/proda\/"}]}},"_links":{"self":[{"href":"https:\/\/prodskill.com\/zh\/wp-json\/wp\/v2\/posts\/12137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prodskill.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prodskill.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prodskill.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prodskill.com\/zh\/wp-json\/wp\/v2\/comments?post=12137"}],"version-history":[{"count":0,"href":"https:\/\/prodskill.com\/zh\/wp-json\/wp\/v2\/posts\/12137\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prodskill.com\/zh\/wp-json\/wp\/v2\/media\/12138"}],"wp:attachment":[{"href":"https:\/\/prodskill.com\/zh\/wp-json\/wp\/v2\/media?parent=12137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prodskill.com\/zh\/wp-json\/wp\/v2\/categories?post=12137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prodskill.com\/zh\/wp-json\/wp\/v2\/tags?post=12137"}],"curies":[{"name":"\u53ef\u6e7f\u6027\u7c89\u5242","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}