Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Re: PLS-00201 when compiling function with cursor as parameter
Many apologies, it was a late night on a looong friday :) i trimmed the
code to make it clearer but i guess i trimmed away too much
CREATE OR REPLACE FUNCTION cursor_function (p_dept_cur IN pkg_test.dept_cur_type) RETURN emp_details_table_type IS
CURSOR emp_cur(p_dept_cd VARCHAR2) IS
SELECT emp_name
FROM emp
WHERE dept_cd = p_dept_cd;
v_separator VARCHAR2(1) default null; v_emp_names VARCHAR2(100); emp_details_table emp_details_table_type; dept_rec p_dept_cur%ROWTYPE;
BEGIN LOOP
FETCH p_dept_cur INTO dept_rec; EXIT WHEN p_dept_cur%NOTFOUND; v_emp_names := null; v_separator := null; -- get the employees and build a concatenated string of employees FOR emp_rec IN emp_cur(dept_rec.dept_cd) LOOP v_emp_names := v_emp_names || v_separator || emp_rec.emp_name; v_separator := '-'; END LOOP; -- add row to table emp_details_table.extend; emp_details_table(emp_details_table.count) :=emp_details_object_type(dept_cd, v_emp_names);
END LOOP; RETURN emp_details_table;
END;
/
result: compile failed with following message "PLS-00201: identifier 'DEPT_CD' must be declared"
> All I see is a likely inappropriate use of a cursor loop.
inappropriate how?
Received on Mon Jan 23 2006 - 04:49:33 CST
![]() |
![]() |