在CURSOR中使用FOR LOOP-无需打开和关闭。
-------------------------------------------------- ---------------------------------------
DECLARE
CURSOR DD IS SELECT * FROM EMP WHERE EMPNO=7788;
BEGIN
FOR D IN DD
LOOP
INSERT INTO EMP10(ID ,NAME)VALUES(D.EMPNO,D.ENAME);
END LOOP;
COMMIT;
END;
如果可能,请尝试使用重复记录。
在游标中使用简单的LOOP
-------------------------------------------------- -
DECLARE
D EMP%ROWTYPE;
CURSOR CC IS SELECT * FROM EMP WHERE EMPNO=&NO;
BEGIN
OPEN CC;
LOOP
FETCH CC INTO D;
EXIT WHEN CC%NOTFOUND;
INSERT INTO EMP1(ID ,NAME) VALUES (D.EMPNO,D.ENAME);
END LOOP;
CLOSE CC;
COMMIT;
END;
上面的代码将从一个表中复制指定的记录,然后插入到另一个表中。
您也可以在这里提交。
在游标中使用WHILE-LOOP
-------------------------------------------------- -----
DECLARE
D EMP%ROWTYPE;
CURSOR CC IS SELECT * FROM EMP WHERE EMPNO=&NO;
BEGIN
OPEN CC;
WHILE CC%FOUND LOOP
FETCH CC INTO D;
INSERT INTO EMP1 VALUES(D.EMPNO,D.ENAME);
END LOOP;
CLOSE CC;
END;
还要检查
PL / SQL游标-3From: https://bytes.com/topic/oracle/insights/741689-pl-sql-cursor-2-a