oracle中pl/sql中for循环的使用场景,给出5个不同场景的具体例子
时间: 2024-02-15 11:02:25 浏览: 109
C#for循环详细实例
5星 · 资源好评率100%
好的,下面是五个不同场景的具体例子,演示了 PL/SQL 中 FOR 循环的常见应用场景:
1. 处理数组
```
DECLARE
TYPE num_array IS VARRAY(10) OF NUMBER;
my_array num_array := num_array(1, 2, 3, 4, 5);
BEGIN
FOR i IN my_array.FIRST .. my_array.LAST LOOP
DBMS_OUTPUT.PUT_LINE('The value of my_array(' || i || ') is: ' || my_array(i));
END LOOP;
END;
```
2. 处理游标
```
DECLARE
CURSOR emp_cur IS SELECT * FROM employees;
emp_rec employees%ROWTYPE;
BEGIN
FOR emp_rec IN emp_cur LOOP
DBMS_OUTPUT.PUT_LINE(emp_rec.first_name || ' ' || emp_rec.last_name);
END LOOP;
END;
```
3. 处理集合
```
DECLARE
TYPE num_set IS SET OF NUMBER;
my_set num_set := num_set(1, 2, 3, 4, 5);
BEGIN
FOR i IN my_set.FIRST .. my_set.LAST LOOP
DBMS_OUTPUT.PUT_LINE('The value of my_set(' || i || ') is: ' || my_set(i));
END LOOP;
END;
```
4. 处理字符串
```
DECLARE
my_string VARCHAR2(10) := 'Hello';
BEGIN
FOR i IN 1 .. LENGTH(my_string) LOOP
DBMS_OUTPUT.PUT_LINE(SUBSTR(my_string, i, 1));
END LOOP;
END;
```
5. 处理日期
```
DECLARE
start_date DATE := TO_DATE('2022-01-01', 'YYYY-MM-DD');
end_date DATE := TO_DATE('2022-01-31', 'YYYY-MM-DD');
BEGIN
FOR i IN start_date .. end_date LOOP
DBMS_OUTPUT.PUT_LINE(i);
END LOOP;
END;
```
需要注意的是,在实际应用中,FOR 循环可能还会与条件语句、异常处理等其他语句结合使用,以满足具体的业务需求。
阅读全文