我有一个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
由于
答案 0 :(得分:1)
@Dvir,你不能这样做,因为这里只有第一个INSERT语句是FORALL的一部分。因此,您只能从CURRVAL获取序列的最后一个值。我建议您使用FOR循环而不是FORALL。