2017-09-19 8 views
0

関数でCursorを作成する必要がありますが、関数を実行すると、Cursorのテーブルで「権限が不十分です」というエラーが表示され、このテーブルは別のスキーマに存在し、すべての特権を選択します。私のユーザにはこのテーブルの同義語もあります。このクエリを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

コードを画像ではなくテキストとして送信してください。私のIDEはイメージを実行できません。 – waka

+0

私はテキストとしてコードを入れました。あなたの応答に感謝します。 –

答えて

0

: 敬具

これはコードです。 PL/SQLでオブジェクトを使用できるようにするには、ユーザーに必要な権限が必要です。

詳細情報はAskTomです。

+0

ありがとうございます。今それは適切に動作します –

関連する問題