更新日期:2024年09月11日
与游标变量相关的查询可以引用相同作用域的任何变量。当用OPEN打开游标变量
时,可以用查询中的任意变量来标识结果集,对于变量的后续修改,会修改结果集。
CREATE OR REPLACE PROCEDURE P_6_10 AS
sal employees.salary%TYPE;
sal_multiple employees.salary%TYPE;
factor INTEGER := 2;
CURSOR c1 IS SELECT salary, salary*factor FROM employees WHERE job_id LIKE 'AD_%';
BEGIN
OPEN c1; -- PL/SQL evaluates factor
LOOP
FETCH c1 INTO sal, sal_multiple;
EXIT WHEN c1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('factor = ' || factor);
DBMS_OUTPUT.PUT_LINE('sal = ' || sal);
DBMS_OUTPUT.PUT_LINE('sal_multiple = ' || sal_multiple);
factor := factor + 1; -- Does not affect sal_multiple
END LOOP;
CLOSE c1;
GBase 8s PL/SQL手册
南大通用数据技术股份有限公司
- 101 -
END;
--Result:
--factor = 2
--sal = 4400
--sal_multiple = 8800
--factor = 3
--sal = 24000
--sal_multiple = 72000
--factor = 4
--sal = 17000
--sal_multiple = 68000
--factor = 5
--sal = 17000
--sal_multiple = 85000