Connecting Tech Pros Worldwide Forums | Help | Site Map

PL/SQL-CURSOR - 2

debasisdas's Avatar
Moderator
 
Join Date: Dec 2006
Location: Bangalore ,India
Posts: 7,511
#1   May 28 '07
Using FOR LOOP in CURSOR----no need to open and close.
-----------------------------------------------------------------------------------------
Expand|Select|Wrap|Line Numbers
  1. DECLARE
  2. CURSOR DD IS SELECT * FROM EMP WHERE EMPNO=7788;
  3. BEGIN
  4. FOR D IN DD 
  5. LOOP
  6. INSERT INTO EMP10(ID ,NAME)VALUES(D.EMPNO,D.ENAME);
  7. END LOOP;
  8. COMMIT;
  9. END;
  10.  
If possible try with duplicate records.

Using simple LOOP in a CURSOR
----------------------------------------------------
Expand|Select|Wrap|Line Numbers
  1. DECLARE
  2. D EMP%ROWTYPE;
  3. CURSOR CC IS SELECT * FROM EMP WHERE EMPNO=&NO;
  4. BEGIN
  5. OPEN CC;
  6. LOOP
  7. FETCH CC INTO D;
  8. EXIT WHEN CC%NOTFOUND;
  9. INSERT INTO EMP1(ID ,NAME) VALUES (D.EMPNO,D.ENAME);
  10. END LOOP;
  11. CLOSE CC;
  12. COMMIT;
  13. END;
  14.  
the above code will copy the specified record from one table and insert to another table.
U can also commit here.

Using WHILE-LOOP in a CURSOR
-------------------------------------------------------
Expand|Select|Wrap|Line Numbers
  1. DECLARE
  2. D EMP%ROWTYPE;
  3. CURSOR CC IS SELECT * FROM EMP WHERE EMPNO=&NO;
  4. BEGIN
  5. OPEN CC;
  6. WHILE CC%FOUND  LOOP
  7. FETCH CC INTO D;
  8. INSERT INTO EMP1 VALUES(D.EMPNO,D.ENAME);
  9. END LOOP;
  10. CLOSE CC;
  11. END;
  12.  

Also check PL/SQL-CURSOR - 3



Reply