2015-08-28 21 views
-1

我有以下光标:For循环的项目:“出纳员”不是光标

FUNCTION managers_meerdere_depart RETURN t_managers_table_type AS 
    CURSOR manager_ids IS SELECT manager_id, count(manager_id) AS teller FROM departments 
    WHERE manager_id IS NOT NULL 
    GROUP BY manager_id; 

当我尝试遍历计数器(柜员),

FOR i IN teller LOOP <----- 
     SELECT d.department_id 
     INTO v_dep_id 
     FROM EMPLOYEES e 
     JOIN DEPARTMENTS d ON e.employee_id = d.manager_id 
     WHERE employee_id = manager_id_rec.manager_id; 
     v_dep_ids(i) := v_dep_id; 
    END LOOP; 

它给了我以下错误:

Error(84,33): PLS-00456: item 'TELLER' is not a cursor

回答

0

你不应该使用的,而不是柜台取款:

FOR manager_id_rec IN manager_ids LOOP IF (manager_id_rec.teller> 1) THEN SELECT first_name, last_name INTO v_first_name, v_last_name FROM employees WHERE employee_id = manager_id_rec.manager_id;

,因为你给的count(manager_id)一个别名是teller

+0

我的道歉。我翻译了出纳员(荷兰人柜台)来反击我的问题。我已经更新了我的问题。你可以再次检查 – Verhelst

+0

你应该遍历游标名称而不是列。 'for i in manager_ids' –

+0

它应该是以下内容:'FOR I IN 0..manager_id_rec.teller LOOP' – Verhelst