是否可以将“ for”转换为“ forall”?
FOR tempCounter in tempCollection.FIRST .. tempCollection.LAST LOOP
IF tempCollection(tempCounter).execactstockkey IS NULL THEN
RETURN;
END IF;
INSERT INTO tbexectempactstock VALUES tempCollection(tempCounter);
END LOOP;
我也尝试过
FORALL tempCounter in tempCollection.FIRST .. tempCollection.LAST
INSERT WHEN tempCollection(i).execactstockkey IS NOT NULL
THEN INTO tbexectempactstock VALUES tempCollection(tempCounter);
但是它弹出我缺少选择键盘
答案 0 :(得分:2)
我怀疑您可以将此条件语句转换为FORALL INSERT
。 FORALL MERGE
可能是可行的,但我认为最好的方法是一次插入:
INSERT INTO tbexectempactstock
SELECT * FROM TABLE(tempCollection)
WHERE execactstockkey IS NOT NULL
答案 1 :(得分:0)
您可以使用not null子句
FORALL tempCounter IN tempCollection.FIRST .. tempCollection.LAST
INSERT INTO tbexectempactstock
SELECT
*
FROM TABLE(tempCollection(tempCounter))
WHERE tempCollection(tempCounter).execactstockkey IS NOT NULL;