【发布时间】:2012-11-21 07:46:09
【问题描述】:
这可能有点傻,但我想知道这是否可能。
我有一个返回 sys_refcursor 的函数
CREATE OR REPLACE FUNCTION get_employee_details(p_emp_no IN EMP.EMPNO%TYPE)
RETURN SYS_REFCURSOR
AS
o_cursor SYS_REFCURSOR;
BEGIN
OPEN o_cursor FOR
SELECT EMPNO,
ENAME,
JOB,
MGR,
HIREDATE,
SAL,
COMM,
DEPTNO
FROM emp
WHERE EMPNO = p_emp_no;
RETURN o_cursor;
-- exception part
END;
/
我可以使用
得到结果select get_employee_details('7369') from dual;
是否可以通过指定列名从上述函数中获取结果? 例如。如果我想获得姓名或薪水,如何在不使用 plsql 块的情况下在 sql 语句中指定? 像
select get_employee_details('7369') <specific column> from dual;
【问题讨论】:
-
@NicholasKrasnov 这背后的想法是我将创建一个用于获取员工详细信息的函数,当我只想获取员工的薪水时,是否可以指定仅获取薪水而不是所有列?
select get_employee_details('7369') from dual将返回函数选择列列表中指定的所有列。
标签: sql function plsql oracle10g sys-refcursor