-1
我有一张名为employees..i的表希望编写两个functions.1st函数通过使用refcursor它希望从employess表中获取所有行...并且结果将通过2nd显示功能。这两个功能应该在一个单一的包装包查询中的PLSQL函数
我有一张名为employees..i的表希望编写两个functions.1st函数通过使用refcursor它希望从employess表中获取所有行...并且结果将通过2nd显示功能。这两个功能应该在一个单一的包装包查询中的PLSQL函数
您的问题显示了很少的行业或努力找出解决方案。
首先阅读Oracle documentation,它会帮助你非常。
由于要达到什么样的一个例子:
CREATE OR REPLACE
PACKAGE ref_cur_package
AS
FUNCTION get_emp
RETURN SYS_REFCURSOR;
PROCEDURE show_emp;
END ref_cur_package;
CREATE OR REPLACE
PACKAGE BODY ref_cur_package
AS
FUNCTION get_emp
RETURN SYS_REFCURSOR
IS
emp_rc SYS_REFCURSOR;
BEGIN
OPEN emp_rc
FOR SELECT *
FROM emp;
RETURN emp_rc;
END get_emp;
PROCEDURE show_emp
IS
emp_rc SYS_REFCURSOR;
emp_row emp%ROWTYPE;
BEGIN
emp_rc := get_emp;
LOOP
FETCH emp_rc INTO emp_row;
EXIT WHEN emp_rc%NOTFOUND;
DBMS_OUTPUT.put_line('Employee: '||emp_row.firstname||' '||emp_row.lastname);
END LOOP;
CLOSE emp_rc;
END show_emp;
END ref_cur_package;
/
要见你需要设置serveroutput on输出。
您还应该添加一个异常处理程序,以在出现问题时强制关闭引用光标,但我会将其留给您进行研究。一定要用
吧! – alfasin 2012-07-06 09:43:24
那么,你的问题到底是什么?到目前为止你有什么尝试过? – Josien 2012-07-06 10:56:59
向我们展示您尝试过的方式,告诉我们您遇到了哪些问题,也许有人可以提供帮助 - 但是,除非您自己做了一些工作,否则不能指望我们为您做。 – 2012-07-09 02:01:52