您可以使用FOR LOOP
:
DECLARE
CURSOR customers IS
SELECT * FROM test;
BEGIN
FOR i IN customers
LOOP
insert into test2 values (2, 3, 3);
END LOOP;
END;
/
,或者您需要添加EXIT CONDITION
监守你的循环是(无限期):
DECLARE
CURSOR customers is
SELECT * FROM test;
l_customer customers%ROWTYPE;
BEGIN
OPEN customers;
LOOP
FETCH customers INTO l_customer;
EXIT WHEN customers%NOTFOUND;
insert into test2 values (2, 3, 3);
END LOOP;
CLOSE customers;
END;
/
编辑:
由于Lalit Kumar B中提到的评论,你可以使用:
BEGIN
FOR i IN (SELECT * FROM test)
LOOP
insert into test2 values (2, 3, 3);
END LOOP;
END;
欲了解更多信息阅读Working with Cursors by Steven Feuerstein
我希望这是一个学习练习,而不是你在生产代码中试图做的事情?因为在现实中,你永远不会把它写成一个通过游标的循环。相反,你应该这样做:'插入test2从测试中选择2,3,3'(如果需要,可以将其放入pl/sql过程中)。 – Boneist