如何比较 SSIS 条件拆分中的两个 GUID?
How to compare two GUIDs in SSIS Conditional Split?
我看到了 问题,我尝试了它的建议,但没有成功(见下面的尝试 1)。
我在条件拆分中尝试了以下条件但没有成功。我已经检查过符合条件的条件拆分之前是否存在记录,因此我应该从条件拆分中获取数据,但我没有获取任何数据。我还验证了其他两个条件是否独立于 GUID 比较正常工作。
我尝试了很多方法都没有成功:
尝试 1:
CompanyGUIDString = (DT_WSTR,50)CompanyID // In Derived Column
// Conditional Split Condition
ISNULL(AssociationID) == FALSE && ccseq_associationtype == 2 && CompanyGUIDString == "7C46BB0B-AEF3-E611-80E0-005056B33317"
尝试 2:
ISNULL(AssociationID) == FALSE && ccseq_associationtype == 2 && CompanyID == "7C46BB0B-AEF3-E611-80E0-005056B33317"
尝试 3:
ISNULL(AssociationID) == FALSE && ccseq_associationtype == 2 && (DT_WSTR, 50) CompanyID == (DT_WSTR,50) "7C46BB0B-AEF3-E611-80E0-005056B33317"
尝试 4:
ISNULL(AssociationID) == FALSE && ccseq_associationtype == 2 && (DT_STR, 50, 1252) CompanyID == (DT_STR, 50, 1252) "7C46BB0B-AEF3-E611-80E0-005056B33317"
尝试 5:
ISNULL(AssociationID) == FALSE && ccseq_associationtype == 2 && (DT_GUID) CompanyID == (DT_GUID) "7C46BB0B-AEF3-E611-80E0-005056B33317"
您的表达式看起来不错,但请注意 SSIS 表达式区分大小写,只需添加括号并使用 UPPER()
函数
(ISNULL(AssociationID) == FALSE) &&
([ccseq_associationtype] == 2) &&
(UPPER((DT_WSTR, 50)[CompanyGUIDString]) == UPPER("7C46BB0B-AEF3-E611-80E0-005056B33317"))
我找到了答案。当您将 GUID 转换为字符串时,转换会将“{}”添加到 GUID。下面的代码将正常工作。
(ISNULL(AssociationID) == FALSE ) && (ccseq_associationtype == 2) && (UPPER((DT_WSTR,50)CompanyID) == UPPER((DT_WSTR,50)"{7C46BB0B-AEF3-E611-80E0-005056B33317}"))
我看到了
我在条件拆分中尝试了以下条件但没有成功。我已经检查过符合条件的条件拆分之前是否存在记录,因此我应该从条件拆分中获取数据,但我没有获取任何数据。我还验证了其他两个条件是否独立于 GUID 比较正常工作。
我尝试了很多方法都没有成功:
尝试 1:
CompanyGUIDString = (DT_WSTR,50)CompanyID // In Derived Column
// Conditional Split Condition
ISNULL(AssociationID) == FALSE && ccseq_associationtype == 2 && CompanyGUIDString == "7C46BB0B-AEF3-E611-80E0-005056B33317"
尝试 2:
ISNULL(AssociationID) == FALSE && ccseq_associationtype == 2 && CompanyID == "7C46BB0B-AEF3-E611-80E0-005056B33317"
尝试 3:
ISNULL(AssociationID) == FALSE && ccseq_associationtype == 2 && (DT_WSTR, 50) CompanyID == (DT_WSTR,50) "7C46BB0B-AEF3-E611-80E0-005056B33317"
尝试 4:
ISNULL(AssociationID) == FALSE && ccseq_associationtype == 2 && (DT_STR, 50, 1252) CompanyID == (DT_STR, 50, 1252) "7C46BB0B-AEF3-E611-80E0-005056B33317"
尝试 5:
ISNULL(AssociationID) == FALSE && ccseq_associationtype == 2 && (DT_GUID) CompanyID == (DT_GUID) "7C46BB0B-AEF3-E611-80E0-005056B33317"
您的表达式看起来不错,但请注意 SSIS 表达式区分大小写,只需添加括号并使用 UPPER()
函数
(ISNULL(AssociationID) == FALSE) &&
([ccseq_associationtype] == 2) &&
(UPPER((DT_WSTR, 50)[CompanyGUIDString]) == UPPER("7C46BB0B-AEF3-E611-80E0-005056B33317"))
我找到了答案。当您将 GUID 转换为字符串时,转换会将“{}”添加到 GUID。下面的代码将正常工作。
(ISNULL(AssociationID) == FALSE ) && (ccseq_associationtype == 2) && (UPPER((DT_WSTR,50)CompanyID) == UPPER((DT_WSTR,50)"{7C46BB0B-AEF3-E611-80E0-005056B33317}"))