oracle存储过程循环
时间: 2023-10-23 17:23:33 浏览: 164
oracle存储过程
在 Oracle 存储过程中,可以使用循环语句来实现对数据集合的遍历和处理。Oracle 存储过程中常用的循环语句有两种:WHILE 循环和 FOR 循环。
下面是一个使用 WHILE 循环的例子,循环处理 emp 表中所有薪资低于 5000 的员工记录:
```sql
CREATE OR REPLACE PROCEDURE process_emp AS
emp_rec emp%ROWTYPE;
BEGIN
-- 获取符合条件的第一个员工记录
SELECT * INTO emp_rec FROM emp WHERE salary < 5000 AND ROWNUM = 1;
-- 循环处理符合条件的员工记录
WHILE emp_rec.empno IS NOT NULL LOOP
-- 处理当前员工记录
-- ...
-- 获取符合条件的下一个员工记录
SELECT * INTO emp_rec FROM emp WHERE salary < 5000 AND empno > emp_rec.empno AND ROWNUM = 1;
END LOOP;
END;
/
```
在上面的例子中,首先使用 SELECT INTO 语句获取符合条件的第一个员工记录,然后使用 WHILE 循环不断获取符合条件的下一个员工记录并进行处理,直到获取的员工记录为空。
另外,Oracle 还提供了 FOR 循环语句,可以更简洁地实现对数据集合的循环处理。下面是一个使用 FOR 循环的例子,循环打印出数字 1 到 10:
```sql
CREATE OR REPLACE PROCEDURE print_numbers AS
BEGIN
-- 循环打印数字
FOR i IN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE(i);
END LOOP;
END;
/
```
在上面的例子中,使用 FOR 循环语句定义了循环变量 i,并通过 .. 运算符指定了循环范围。在循环体中,通过 DBMS_OUTPUT.PUT_LINE 进行打印操作。
阅读全文