我需要在一个函数中创建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;
答案 0 :(得分:0)
如果通过角色提供授权但未明确为您的用户提供授权,则通常会发生这种情况。要允许在PL / SQL中使用对象,您的用户需要获得必要的授权。
AskTom的更多信息。