```sqlFOR i IN 1 TO 10 LOOP DBMS_OUTPUT.PUT_LINE(i);END LOOP;```
2.循环 10 到 1 的数字
```sqlFOR i IN 10 DOWNTO 1 LOOP DBMS_OUTPUT.PUT_LINE(i);END LOOP;```
3.循环数组中的元素
假设有一个数组 `numbers`,包含 1 到 10 的数字,可以使用 `FOR` 循环遍历数组:```sqlDECLARE numbers NUMBER := 1; num NUMBER;BEGIN FOR num IN 1 TO 10 LOOP DBMS_OUTPUT.PUT_LINE(num); END LOOP;END;```
4.循环 SQL 查询结果集
在 Oracle 中,可以使用 `FOR` 循环来遍历查询结果集中的每一行:```sqlDECLARE CURSOR c IS SELECT FROM employees; emp_rec employees%ROWTYPE;BEGIN OPEN c; LOOP FETCH c INTO emp_rec; EXIT WHEN c%NOTFOUND; DBMS_OUTPUT.PUT_LINE('Employee Name: ' || emp_rec.name); END LOOP; CLOSE c;END;```
除了基本的 `FOR` 循环,Oracle 还提供了高级的 `FOR` 循环用法,例如:1.使用 `FOR` 循环处理集合中的元素: ```sql FOR i IN 1..10 LOOP DBMS_OUTPUT.PUT_LINE(i); END LOOP; ```2.使用 `FOR` 循环处理游标中的结果集: ```sql DECLARE CURSOR c IS SELECT FROM employees; emp_rec employees%ROWTYPE; BEGIN OPEN c; LOOP FETCH c INTO emp_rec; EXIT WHEN c%NOTFOUND; DBMS_OUTPUT.PUT_LINE('Employee Name: ' || emp_rec.name); END LOOP; CLOSE c; END; ```3.使用 `FOR` 循环处理复杂的数据结构: ```sql DECLARE type my_type is record ( id NUMBER, name VARCHAR2(50) ); emp_rec my_type; BEGIN FOR emp_rec IN (SELECT id, name FROM employees) LOOP DBMS_OUTPUT.PUT_LINE('Employee ID: ' || emp_rec.id || ', Name: ' || emp_rec.name); END LOOP; END; ```