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,有一种方法可以通过它返回记录集。 –