【发布时间】:2017-05-17 18:03:03
【问题描述】:
我是 pl/sql 的新手。我的怀疑可能是基本的,但我无法找出答案。任何帮助都非常感谢。这是问题。
我创建了一个返回光标的函数。
CREATE OR REPLACE FUNCTION get_empNumber (dept_name varchar2)
RETURN SYS_REFCURSOR
IS
l_rc SYS_REFCURSOR;
BEGIN
OPEN l_rc FOR
select DISTINCT emp_NUMBER FROM emp where department_NAME = dept_name;
RETURN l_rc;
END ;
如果我想通过调用函数来访问上面返回的光标,我应该怎么做?尝试了下面的代码,但它给出了错误。因为我在 Oracle Apex 中尝试这个,它只是说编译错误,不提供任何进一步的错误细节。
DECLARE
cnumber number;
CURSOR c1 IS get_bugNumber ('John');
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO cnumber ;
EXIT WHEN c1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('Emp_No= ' || cnumber );
END LOOP;
CLOSE c1;
END;
【问题讨论】:
-
get_empNumber 在您的示例中甚至没有被调用。
标签: oracle plsql oracle-apex