现在有个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)
)
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)
)
只能写多个forall,每个跟一个了.
只能写多个forall,每个跟一个了. 多谢,欢迎以后继续指教!
INSERT INTO STU2 VALUES (pid(i),pname(i)); end loop;