现在有个LARGE delete的问题,程序代码如下:
declare
type IDTab is table of STU.ID%type;
type NameTab is table of STU.NAME%type;
pid IDTab;
pname NameTab;
i INT;
cursor c1 is select ID ,NAME FROM STU;
begin
OPEN C1;
FETCH C1  bulk collect into pid,pname ;
 
forALL i in 1..10 
INSERT INTO STU1 VALUES (pid(i),pname(i));
--INSERT INTO STU2 VALUES (pid(i),pname(i));
end;这里需要对多个表进行INSERT或者DELETE的操作,但是经过测试,发现只能有一条INSERT/DELETE命令,请问各位大侠,还有其他的方法可以实现多条DML语句在这里执行吗?
例如,将最后一个注释掉的INSERT释放出来后,怎样可以成功呢?
建表脚本如下,可以做一些样本数据测试,谢谢!
CREATE TABLE STU 
   ( "ID" NUMBER, 
"NAME" VARCHAR2(10)
   )

解决方案 »

  1.   

    forall 后只能跟一个语句,不能跟多个.
    只能写多个forall,每个跟一个了.
      

  2.   

    forall 后只能跟一个语句,不能跟多个. 
    只能写多个forall,每个跟一个了.     多谢,欢迎以后继续指教!
      

  3.   

    用for语句:for  i in 1..10 loop   INSERT INTO STU1 VALUES (pid(i),pname(i)); 
       INSERT INTO STU2 VALUES (pid(i),pname(i)); end loop; 
      

  4.   

    每个forall语句 后确实只能跟一个语句。建议用for loop