背景介绍
LightDB在适配Oracle语法模式下,目前不支持在PL/SQL游标隐式声明中直接嵌套使用WITH子句。在Oracle数据库中,开发者可以在定义和打开游标时,将WITH子句作为查询的一部分,用于临时存储和处理中间结果。
为了兼容Oracle数据库的使用,LightDB从24.1版本开始,在plorasql
中支持在游标隐式声明中嵌套使用WITH子句。
使用示例
CREATE TABLE employees (employee_id NUMBER PRIMARY KEY, first_name VARCHAR2(50));
INSERT INTO employees VALUES (1, 'John');
INSERT INTO employees VALUES (2, 'Jane');
INSERT INTO employees VALUES (3, 'Bob');
BEGIN
FOR emp_rec IN (WITH employeetemp AS
( SELECT employee_id AS eid, first_name AS fname FROM employees
) SELECT eid,fname FROM employeetemp
) loop
DBMS_OUTPUT.PUT_LINE('Employee ID: ' || emp_rec.eid || ', Name: ' || emp_rec.fname);
END LOOP;
END;
/