预测 SSIS 参数图中部分匹配的 GUID
Predict Partially matched GUIDs in SSIS parameter map
出于遗憾的原因,我的任务是自动生成一些 SSIS 包文件。即构建代表 .dstx 文件的 XML 字符串。
我可能已经完成了实现这一目标的 95%,但遇到了一个绊脚石:(
包中的任务之一是 "Read from Source Database" 包,它将包参数绑定到 SQL 查询中。
包参数声明在 .dtsx 文件的顶部:
<DTS:PackageParameter
DTS:CreationName=""
DTS:DataType="7"
DTS:DTSID="{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"
DTS:ObjectName="LoadEndDate"
DTS:Required="True">
<DTS:Property
DTS:DataType="7"
DTS:Name="ParameterValue">12:00:00 AM</DTS:Property>
</DTS:PackageParameter>
然后(两个)参数稍后在文件中绑定到查询:
name="ParameterMapping">"Parameter0:Input",{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX};"Parameter1:Input",{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX};</property>
显然,在上面,我删除了 GUID 以演示结构。
我看到了这个,乍一看各自的 GUID 都匹配。所以我实现了我的代码来存储我在顶部生成的第一个 GUID,然后将其重新用于映射。
遗憾的是,GUID 不太匹配。当我打开我生成的包时,VS 认为 SQL 参数没有被绑定。当我在 VS 中手动绑定它们时,它会用新的、略微改变的 GUID 更新 XML 文件!
Declaration GUID: {09AFE89A-DD9F-499C-9D14-A5F937FE3B47}
Mapping GUID: {09AFE89A-2260-499C-9D14-A5F937FE3B47}
Declaration GUID: {271E6086-3678-43A2-B5EF-DCB46DE91BA6}
Mapping GUID: {271E6086-C987-43A2-B5EF-DCB46DE91BA6}
注意 GUID 的第二块!!
有没有人知道 faintest WTF 正在进行中,或者映射 GUID 是如何从声明 GUID 派生的。
今天下午我将亲自调查此事,并将 post 我收集到的任何进一步知识。
更新:
更多 GUID 对(取自 "normal" 手动创建的包)
{D8BE8459-2D2E-422D-ABD3-C7856F67CB24}
{D8BE8459-D2D1-422D-ABD3-C7856F67CB24}
{4E5A7104-3710-4DA4-8ECE-77A84838D9FA}
{4E5A7104-C8EF-4DA4-8ECE-77A84838D9FA}
{674D70A9-A68F-4BBA-BE44-7D1E3230D25E}
{674D70A9-5970-4BBA-BE44-7D1E3230D25E}
{4D7DD424-2CE4-488E-A146-44F13F2387AA}
{4D7DD424-D31B-488E-A146-44F13F2387AA}
{B6932587-FB99-4BDB-879F-E93CFD067A34}
{B6932587-0466-4BDB-879F-E93CFD067A34}
{5019F423-7DDE-422B-BF33-F9269494CBEA}
{5019F423-8221-422B-BF33-F9269494CBEA}
{7379E5EF-7D1B-4C01-9CF9-2D03F0E0702C}
{7379E5EF-82E4-4C01-9CF9-2D03F0E0702C}
{103E6151-235C-4688-9A3E-2F782B2B8611}
{103E6151-DCA3-4688-9A3E-2F782B2B8611}
{111337C4-BF81-4581-9CCE-B8C3D603D38C}
{111337C4-407E-4581-9CCE-B8C3D603D38C}
{0B1415C1-2A47-45B2-A61E-EB2F9E5F4A11}
{0B1415C1-D5B8-45B2-A61E-EB2F9E5F4A11}
{8A665C18-74BD-48A1-B270-723D83658F2D}
{8A665C18-8B42-48A1-B270-723D83658F2D}
{C2775F07-42EF-4DDB-80E5-33591C46F348}
{C2775F07-BD10-4DDB-80E5-33591C46F348}
{85242E06-D48C-47A2-BDC2-264B6D6F754A}
{85242E06-2B73-47A2-BDC2-264B6D6F754A}
{CFA3BAD6-CACB-464A-9519-D39A049678A0}
{CFA3BAD6-3534-464A-9519-D39A049678A0}
更新:
更改后的块似乎并不依赖于整个 GUID 的其余部分:
{C2EB5307-CEC8-4617-BEE0-414BD875B146}
{C2EB5307-3137-4617-BEE0-414BD875B146}
{D2EB5307-CEC8-4617-BEE0-414BD875B146}
{D2EB5307-3137-4617-BEE0-414BD875B146}
更新:
更改的块似乎不依赖于 file/package/project/solution.
的其余部分
我提取了上述 GUID 之一(具有已知配对)并将其作为包参数 GUID 粘贴到一个完全不同、完全不相关的 SSIS 解决方案中。它生成了相同的配对。
GUID 的更改块是原始值的按位非。 :(
在十六进制中,这意味着 4 位数字中的每一位都被映射:x => F - x
完成此操作的 原因 留作 reader 的练习。
出于遗憾的原因,我的任务是自动生成一些 SSIS 包文件。即构建代表 .dstx 文件的 XML 字符串。
我可能已经完成了实现这一目标的 95%,但遇到了一个绊脚石:(
包中的任务之一是 "Read from Source Database" 包,它将包参数绑定到 SQL 查询中。 包参数声明在 .dtsx 文件的顶部:
<DTS:PackageParameter
DTS:CreationName=""
DTS:DataType="7"
DTS:DTSID="{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"
DTS:ObjectName="LoadEndDate"
DTS:Required="True">
<DTS:Property
DTS:DataType="7"
DTS:Name="ParameterValue">12:00:00 AM</DTS:Property>
</DTS:PackageParameter>
然后(两个)参数稍后在文件中绑定到查询:
name="ParameterMapping">"Parameter0:Input",{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX};"Parameter1:Input",{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX};</property>
显然,在上面,我删除了 GUID 以演示结构。
我看到了这个,乍一看各自的 GUID 都匹配。所以我实现了我的代码来存储我在顶部生成的第一个 GUID,然后将其重新用于映射。
遗憾的是,GUID 不太匹配。当我打开我生成的包时,VS 认为 SQL 参数没有被绑定。当我在 VS 中手动绑定它们时,它会用新的、略微改变的 GUID 更新 XML 文件!
Declaration GUID: {09AFE89A-DD9F-499C-9D14-A5F937FE3B47}
Mapping GUID: {09AFE89A-2260-499C-9D14-A5F937FE3B47}
Declaration GUID: {271E6086-3678-43A2-B5EF-DCB46DE91BA6}
Mapping GUID: {271E6086-C987-43A2-B5EF-DCB46DE91BA6}
注意 GUID 的第二块!!
有没有人知道 faintest WTF 正在进行中,或者映射 GUID 是如何从声明 GUID 派生的。
今天下午我将亲自调查此事,并将 post 我收集到的任何进一步知识。
更新:
更多 GUID 对(取自 "normal" 手动创建的包)
{D8BE8459-2D2E-422D-ABD3-C7856F67CB24}
{D8BE8459-D2D1-422D-ABD3-C7856F67CB24}
{4E5A7104-3710-4DA4-8ECE-77A84838D9FA}
{4E5A7104-C8EF-4DA4-8ECE-77A84838D9FA}
{674D70A9-A68F-4BBA-BE44-7D1E3230D25E}
{674D70A9-5970-4BBA-BE44-7D1E3230D25E}
{4D7DD424-2CE4-488E-A146-44F13F2387AA}
{4D7DD424-D31B-488E-A146-44F13F2387AA}
{B6932587-FB99-4BDB-879F-E93CFD067A34}
{B6932587-0466-4BDB-879F-E93CFD067A34}
{5019F423-7DDE-422B-BF33-F9269494CBEA}
{5019F423-8221-422B-BF33-F9269494CBEA}
{7379E5EF-7D1B-4C01-9CF9-2D03F0E0702C}
{7379E5EF-82E4-4C01-9CF9-2D03F0E0702C}
{103E6151-235C-4688-9A3E-2F782B2B8611}
{103E6151-DCA3-4688-9A3E-2F782B2B8611}
{111337C4-BF81-4581-9CCE-B8C3D603D38C}
{111337C4-407E-4581-9CCE-B8C3D603D38C}
{0B1415C1-2A47-45B2-A61E-EB2F9E5F4A11}
{0B1415C1-D5B8-45B2-A61E-EB2F9E5F4A11}
{8A665C18-74BD-48A1-B270-723D83658F2D}
{8A665C18-8B42-48A1-B270-723D83658F2D}
{C2775F07-42EF-4DDB-80E5-33591C46F348}
{C2775F07-BD10-4DDB-80E5-33591C46F348}
{85242E06-D48C-47A2-BDC2-264B6D6F754A}
{85242E06-2B73-47A2-BDC2-264B6D6F754A}
{CFA3BAD6-CACB-464A-9519-D39A049678A0}
{CFA3BAD6-3534-464A-9519-D39A049678A0}
更新: 更改后的块似乎并不依赖于整个 GUID 的其余部分:
{C2EB5307-CEC8-4617-BEE0-414BD875B146}
{C2EB5307-3137-4617-BEE0-414BD875B146}
{D2EB5307-CEC8-4617-BEE0-414BD875B146}
{D2EB5307-3137-4617-BEE0-414BD875B146}
更新: 更改的块似乎不依赖于 file/package/project/solution.
的其余部分我提取了上述 GUID 之一(具有已知配对)并将其作为包参数 GUID 粘贴到一个完全不同、完全不相关的 SSIS 解决方案中。它生成了相同的配对。
GUID 的更改块是原始值的按位非。 :(
在十六进制中,这意味着 4 位数字中的每一位都被映射:x => F - x
完成此操作的 原因 留作 reader 的练习。