所以,我有我试图改变成一个INSERT插入不返回正确价值观
这里有更新的原始更新语句(它需要长期进行大批量生产)
DECLARE
BEGIN
UPDATE TOCTASK_ORIG TASKO
SET c_ocactvty_childactiviti = 11200,
i_ocactvty_childactiviti =
(SELECT PROI.I
FROM TOCPROCESSINSTANCE PROI,
TOCSERVICEREQUEST SR
WHERE TASKO.c_occontbs_tasks = 11011
AND TASKO.i_occontbs_tasks = SR.I
AND PROI.C_PROCESSIServiceRe = SR.C
AND PROI.I_PROCESSIServiceRe = SR.I
)
WHERE EXISTS
(SELECT 1
FROM TOCPROCESSINSTANCE PROI,
TOCSERVICEREQUEST SR
WHERE TASK.c_occontbs_tasks = 11011
AND TASK.i_occontbs_tasks = SR.I
AND PROI.C_PROCESSIServiceRe = SR.C
AND PROI.I_PROCESSIServiceRe = SR.I
);
COMMIT;
END;
从研究网上最好的办法是改写这个可以插入,使沿我在这里做的方式
的变化是为INSERT
SELECT子句0问题是我目前在原始表中有110302条记录,但是当我将插入运行到一个新的临时表时,它只创建了19,269条记录。这个数字相匹配的WHERE子句中,19,269现在应该匹配PROI.I值的第二部分,其余部分为空
AND PROI.C_PROCESSIServiceRe = 11011
AND PROI.I_PROCESSIServiceRe = SR.I
问题是正在创建没有其他记录,它只是简单地创建了19,269记录和停止
任何帮助将是巨大的
以上信息:写INNER JOIN逗号istead。它的ANSI标准,将更容易为您和所有其他人阅读 –