1
我在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'表明它是一個ref cursor? –
emp_det是我創建了一個對象類型。它有兩個屬性ename和empo。如果我使用lcursor作爲refcursor,有一種方法可以通過它返回記錄集。 –