相关疑难解决方法(0)

PL/SQL FOR LOOP IMPLICIT CURSOR

有2个表EMPLOYEES,DEPARTMENTSdepartment_id作为主键DEPARTMENTS和外键EMPLOYEES.

我想打印属于特定部门的所有员工姓名.我知道它可以通过JOINS或EXPLICIT游标轻松实现.我想为什么不试试FOR循环和IMPLICIT游标.

我的问题是,如果这样编写在语法上是正确的INTO.如果是这样,为什么不分配任何值?

DECLARE
    emp_dept_id employees.department_id%TYPE;
    emp_emp_id employees.employee_id%TYPE;
    emp_last_name employees.last_name%TYPE;
    dept_dept_id departments.department_id%TYPE;
    dept_dept_name departments.department_name%TYPE;
    v_count number DEFAULT 0;
BEGIN
    FOR i IN (SELECT DISTINCT department_id, department_name
                INTO dept_dept_id, dept_dept_name
        FROM departments)
    LOOP
        --v_COUNT := v_COUNT + 1;
        DBMS_OUTPUT.PUT_LINE('HELLO'||dept_dept_id||' '||dept_dept_name);
        FOR j IN (SELECT employee_id, last_name
            INTO emp_emp_id, emp_last_name
            FROM employees)
            --WHERE department_id=dept_dept_id)
        LOOP
            DBMS_OUTPUT.PUT_LINE(emp_emp_id||' '||emp_last_name);
            v_COUNT := v_COUNT + 1;
        END LOOP;
    END LOOP; …
Run Code Online (Sandbox Code Playgroud)

oracle plsql for-loop cursor

6
推荐指数
2
解决办法
9万
查看次数

标签 统计

cursor ×1

for-loop ×1

oracle ×1

plsql ×1