我在控制流中具有以下步骤,其中第一个执行SQL任务使用WorkOrderID,第二个脚本任务使用InvoiceID。
任何人都可以在“更新发票状态”对象上看到我在做错的事情吗?
[执行SQL任务]错误:执行查询“我设置的更新 I.Status = C1.Name ='Cy ...'时失败,出现以下情况 错误:“多步OLE DB操作生成错误。检查每个 OLE DB状态值(如果有)。未完成任何工作。”。可能 失败原因:查询问题,“ ResultSet”属性未设置 正确,参数设置不正确或连接未建立 正确。
,并且“更新发票状态”对象的查询为:
CREATE TRIGGER tr_player_computed
AFTER INSERT OR UPDATE OR DELETE ON emp
FOR EACH ROW EXECUTE PROCEDURE f_tr_player_computed();
CREATE OR REPLACE FUNCTION f_tr_player_computed() RETURNS TRIGGER AS $player$
BEGIN
new.bmi = (new.weight/((new.height/100)^2));
RETURN NEW;
END;
答案 0 :(得分:1)
我认为该错误是由Variable数据类型引起的。检查User::WorkerID
的类型为VARCHAR
,但它必须是整数。检查变量的数据类型是否与列相关。
基于以下文章Resolving an SSIS Error Due to Parameters Not Mapped Correctly:
可能会出现此特定错误的其他原因是,如果您的数据类型设置不正确,或者查询参数的数量与映射的变量不匹配(且顺序正确)。
为什么InvoiceID参数名称是1
而不是0
?尝试将其更改回0
如果参数仍然存在问题,则可以使用Expression构建SQL语句:
在Execute SQL Task
编辑器中转到“表达式”。选择SQLStatmentSource
属性并编写类似的表达式:
"Update
I
Set
I.Status = 10
from
Invoice I
where
I.ID = " + (DT_WSTR,50)@[User::InvoiceID]