Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
O bucla cursor FOR prelucreaza randurile dintr-un cursor explicit. Aceasta este o cale mai scurta deoarece cursorul este deschis, randurile sunt incarcate la fiecare iteratie a buclei, si cursorul este inchis automat cand toate randurile au fost procesate. Bucla insusi se termina automat la sfarsitul ultimei iteratii cand ultimul rand a fost procesat. Sintaxa buclei este:
FOR record_name IN cursor_name LOOP
statement1;
statement2;
.
END LOOP;
unde:
record_name este numele unei inregistrari declarate implicit.
cursor_name este numele unui cursor declarat anterior.
Exemplu:
Se parcurg angajatii unul cate unul.
DECLARE
CURSOR c1 IS
SELECT empno, ename
FROM emp;
BEGIN
FOR emp_record IN c1 LOOP
-- implicit se realizeaza operatia de OPEN si FETCH
IF emp_record.empno = 7839 THEN
.
END LOOP; -- implicit se realizeaza operatia CLOSE
END;
O bucla cursor FOR folosind subqueriuri:
BEGIN
FOR emp_record IN ( SELECT empno, ename
FROM emp) LOOP
-- implicit se realizeaza operatia de OPEN si FETCH
IF emp_record.empno = 7839 THEN
.
END LOOP;-- implicit se realizeaza operatia CLOSE
END;
Nu este nevoie sa declaram un cursor deoarece PL/SQL permite substituirea unui subquery.
Copyright © 2024 - Toate drepturile rezervate