简体   繁体   English

ORACLE-在FORALL中使用INSERT seq进行更新

[英]ORACLE - UPDATE using INSERT seq inside FORALL

I have an ORACLE DB. 我有一个ORACLE数据库。 I'm trying to loop through an array using FORALL and inside that FORALL to insert into a table with TABLE.NEXTVAL and after that to update a foreign key of another table with the new TABLE.CURVAL but I know that it's impossible. 我正在尝试使用FORALL遍历一个数组,并在FORALL内部使用TABLE.NEXTVAL插入表中,然后使用新的TABLE.CURVAL更新另一个表的外键,但是我知道这是不可能的。

How can I implement it? 我该如何实施?

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

Thanks 谢谢

@Dvir, You can't do this, because here only first INSERT statement is part of FORALL. @Dvir,您不能这样做,因为这里只有第一个INSERT语句是FORALL的一部分。 And hence you can only get the last value of sequence from CURRVAL. 因此,您只能从CURRVAL获取序列的最后一个值。 I would like to suggest you use FOR loop instead of FORALL. 我建议您使用FOR循环而不是FORALL。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM