尝试使用带有光标的记录,然后在混合中按表进行索引。
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和关闭?
答案 0 :(得分:4)
你很亲密;问题只是双引号中不的标识符转换为大写,而双引号中 的标识符不是。因此name
,NAME
和"NAME"
彼此相同,并且所有这些都与"name"
不同。要么改变这个:
first_name||' '|| last_name "name"
到此:
first_name||' '|| last_name name
或者,如果您愿意,请更改此内容:
'Employee Name:'||emp_rec.name
到此:
'Employee Name:'||emp_rec."name"