在表达式构建器中,我的查询看起来像这样。
SELECT *
FROM TABLE_A
WHERE COLOMN_A_ID IN
(SELECT COLOMN_A_ID
FROM TABLE_B
JOIN EXTRACT_STATUS ON EXTRACT_DTTM > TO_DATE('" + (DT_WSTR, 30) @[User::LastTransferDT] + "', 'mm/dd/yyyy hh:mi:ss AM') AND TABLE_B.Scheduled_DT BETWEEN EXTRACT_STATUS.RANGE_BEGIN_DTTM AND EXTRACT_STATUS.RANGE_END_DTTM AND F_MPOG_EXTRACT.extract_num ="+@[User::RowNumber]+ ")"`
我一次又一次地遇到同样的错误。 请帮忙。
无法评估表达。
其他信息:
数据类型" DT_WSTR"和" DT_I4"与二元运算符" +"不兼容。操作数类型无法隐式转换为操作的兼容类型。要执行此操作,需要使用强制转换运算符显式转换一个或两个操作数。
尝试设置二进制操作的结果类型
SELECT *
FROM TABLE_A
WHERE COLOMN_A_ID IN (SELECT COLOMN_A_ID
FROM TABLE_B
JOIN EXTRACT_STATUS
ON EXTRACT_DTTM >
TO_DATE('" + (DT_WSTR,30)@[User::LastTransferDT] + "', 'mm/dd/yyyy hh:mi:ss AM')
AND TABLE_B.Scheduled_DT BETWEEN EXTRACT_STATUS.RANGE_BEGIN_DTTM
AND EXTRACT_STATUS.RANGE_END_DTTM
AND F_MPOG_EXTRACT.extract_num =" + @[User::RowNumber]" failed with error code 0xC0047080.
(Microsoft.DataTransformationServices.Controls)
按钮:
答案 0 :(得分:3)
您可能需要明确地将RowNumber
参数转换为字符串类型,就像您在代码中为LastTransferDt
做更高一样。
... EXTRACT.extract_num =" + (DT_WSTR,30)@[User::RowNumber]