光标在功能中出错

时间:2017-09-19 08:32:43

标签: oracle cursor

我需要在一个函数中创建Cursor,但是当我执行一个函数时,我得到一个错误,即"特权不足"在Cursor的表上,这个表存在于另一个模式中,我拥有所有权限,甚至是select。在我的用户上还有这个表的同义词,当我在Cursor外部执行此查询时,它可以正常工作。 我需要你的帮助。 最好的问候

这是代码:

CREATE OR REPLACE Function cursor_test_func
    ( temp IN number )
    RETURN varchar2
IS
    total_val number(6);

    cursor brn_code_curs is
     SELECT code_brn
     FROM dbschema.branche;

BEGIN
    total_val := 0;
    FOR brn_rec in brn_code_curs
    LOOP
        DBMS_OUTPUT.PUT_LINE ('code = ' || brn_rec.code_brn);
    END LOOP;
    RETURN total_val;
END;

1 个答案:

答案 0 :(得分:0)

如果通过角色提供授权但未明确为您的用户提供授权,则通常会发生这种情况。要允许在PL / SQL中使用对象,您的用户需要获得必要的授权。

AskTom的更多信息。