ORACLE - 在FORALL中使用INSERT seq更新

时间:2018-05-03 10:19:51

标签: database oracle

我有一个ORACLE DB。 我尝试使用FORALL循环遍历数组,并在FORALL内部插入带有TABLE.NEXTVAL的表,然后使用新的TABLE.CURVAL更新另一个表的外键,但我知道它&#39不可能。

我该如何实施?

FORALL I IN 1 ..5
insert into tbl
    values (tbl_seq.NEXTVAL)
update foo set tbl_fk = tbl_seq.CURVAL where foo.id=I

由于

1 个答案:

答案 0 :(得分:1)

@Dvir,你不能这样做,因为这里只有第一个INSERT语句是FORALL的一部分。因此,您只能从CURRVAL获取序列的最后一个值。我建议您使用FOR循环而不是FORALL。