PL / SQL游标已在函数内打开?

时间:2017-10-11 14:19:16

标签: oracle plsql cursor oracle-sqldeveloper

我有以下代码。当我编译我的函数时,SQL Developer说一切都没问题,但是当我执行我的DECLARE,BEGIN,END块时,SQL Developer说光标已经打开了,但我将它关闭到我的函数中?有人可以帮我吗?

CREATE OR REPLACE TYPE courriel AS TABLE OF VARCHAR2 (100);
/
CREATE OR REPLACE FUNCTION listCourriel
  RETURN courriel
AS
  listeCourriel   courriel := courriel();
    vSuffixeCourriel varchar2(10);
    vPrenom varchar2(255);
    vNom varchar2(255);
    CURSOR c_emp IS SELECT first_name, last_name FROM s_emp;
BEGIN
        vSuffixeCourriel := '@summit.ca';
        OPEN c_emp;

    FOR v_emp IN c_emp LOOP
        vPrenom := v_emp.first_name;
        vNom := lower(v_emp.last_name);
        listeCourriel.EXTEND;
        listeCourriel(listeCourriel.LAST) := vPrenom || vNom || vSuffixeCourriel;
    END LOOP;
    CLOSE c_emp;
  RETURN listeCourriel;
END;
/

DECLARE
    listeCourriel courriel := courriel();
    unNom VARCHAR2(100);
BEGIN
    listeCourriel := listCourriel();
    FOR i IN 1..listeCourriel.COUNT LOOP
        DBMS_OUTPUT.PUT_LINE(listeCourriel(i));
    END LOOP;
END;

提前蹲下! :)

0 个答案:

没有答案