Я написал процедуру в PL/SQL и хочу вернуть объект типа EMP. Можно ли это сделать? Если да, как я могу это сделать?Как установить объект как параметр out?
Вот код:
CREATE OR REPLACE
PROCEDURE get_emp_rs (p_deptno IN emp.deptno%TYPE,
p_recordset OUT emp_det) AS
emp_details emp_det;
BEGIN
OPEN p_recordset FOR
SELECT ename,
empno
FROM emp
WHERE deptno = p_deptno
ORDER BY ename;
fetch p_recordset into emp_details;
--exit when p_recordset%notfound;
--end loop;
--for indx in p_recordset
--loop
emp_details.ename:= 'test';
--end loop;
END get_emp_rs;
/
SET SERVEROUTPUT ON SIZE 1000000
DECLARE
l_cursor emp_det;
--l_cur emp_det;
--l_ename emp.ename%TYPE;
--l_empno emp.empno%TYPE;
l_deptno emp.deptno%TYPE;
BEGIN
l_cur:=get_emp_rs ('30',
l_cursor);
dbms_output.put_line('low');
/*LOOP
FETCH l_cursor
INTO l_ename, l_empno, l_deptno;
EXIT WHEN l_cursor%NOTFOUND;*/
DBMS_OUTPUT.PUT_LINE(l_cursor.ename || ' | ' || l_cursor.empno);
end;
/
Я хочу, чтобы получить ename
и empno
, наконец, после обновления в процедуре. Как я могу это сделать? Если есть лучший способ сделать это, пожалуйста, предложите мне.
А также, пожалуйста, предложите мне, как я могу это сделать. Я не могу использовать какие-либо функции здесь, это единственное обязательство. Также, пожалуйста, дайте мне знать, если есть способ сделать это с помощью.
Как 'emp_det' объявлен? Вы сказали, что это объект, но тогда 'l_cursor' предполагает, что это курсор? –
emp_det - тип объекта, который я создал. Он имеет два атрибута ename и empo. Если я использую lcursor как refcursor, есть способ вернуть набор записей через него. –