如何使用FOR Cursor Loop访问Record中的连续列

时间:2012-01-14 21:14:41

标签: oracle plsql plsqldeveloper

尝试使用带有光标的记录,然后在混合中按表进行索引。

DECLARE CURSOR emp_cur IS
    SELECT employee_id, first_name||' '|| last_name "name"
    FROM employees 
    ORDER BY salary desc;

emp_rec emp_cur%ROWTYPE;

BEGIN 
    FOR emp_rec IN emp_cur
    LOOP
        DBMS_OUTPUT.PUT_LINE('Employee ID:'||emp_rec.employee_id||CHR(10)||
                             'Employee Name:'||emp_rec.name);
        EXIT WHEN emp_cur%ROWCOUNT = 10;
    END LOOP;
END;

当我运行上面的代码时,我得到了

 ERROR at line 13, "NAME" must be declared.

如何访问列first_name ||' '|| last_name在For循环中?或者我只需要做传统的OPEN,简单的循环,FETCH和关闭?

1 个答案:

答案 0 :(得分:4)

你很亲密;问题只是双引号中的标识符转换为大写,而双引号中 的标识符不是。因此nameNAME"NAME"彼此相同,并且所有这些都与"name"不同。要么改变这个:

first_name||' '|| last_name "name"

到此:

first_name||' '|| last_name name

或者,如果您愿意,请更改此内容:

'Employee Name:'||emp_rec.name

到此:

'Employee Name:'||emp_rec."name"