如何使用FOR光标循环访问记录中的连接列
问题描述:
试图在游标中使用带有游标的记录以及随后的表索引。如何使用FOR光标循环访问记录中的连接列
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并关闭?
答
你非常接近;问题在于而不是用双引号标识符转换为大写,而为的标识符用双引号做而不是。所以name
,NAME
和"NAME"
相互等价,并且它们全都与"name"
不同。要么改变这一点:
first_name||' '|| last_name "name"
这样:
first_name||' '|| last_name name
否则,如果你愿意,更改此:
'Employee Name:'||emp_rec.name
这样:
'Employee Name:'||emp_rec."name"
+0
干得好!去的方法:) – MStp 2012-01-14 21:45:30
我相信我不必在DECLARE部分中声明emp_rec,因为FOR循环会自动执行该操作问题依然如此。 – MStp 2012-01-14 21:23:13