在ORACLE中使用FORALL选项更新多个表

时间:2016-03-01 08:28:24

标签: oracle for-loop plsql oracle11g database-performance

任何人都可以帮助我如何在oracle中的FORALL选项中提供多个DML语句。

2 个答案:

答案 0 :(得分:3)

  

如何在FORALL中提供多个DML语句

你做不到。一个 FORALL 语句只能支持一个 DML 语句。对于" n" DML,你需要写" n" FORALL声明。

答案 1 :(得分:0)

实际上,您可以将DML放在单个匿名pl / sql块中,并通过execute立即执行语句运行它,如下所示(https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:9530395800346231332):

 forall 1 .. l_var.count
     execute immediate 'begin
     delete tab1 where id=:1;
     delete tab2 where id=:1;
     delete tab3 where id=:1;
   end;' using l_var(i);