sql >> データベース >  >> RDS >> Oracle

ORA-28113:ポリシー述語にエラーがあります

    (古い質問ですが、偶然見つけたので、先に進んで他の人のために答えます...)

    ORA-28113は、ポリシー関数がwhere句を返したときに、結果のSQLにエラーが発生したことを意味します。トレースファイルを見ると詳細がわかります。また、試してみてください:

    select Select_Nhanvien('myschema','mytable') from dual;
    

    次に、結果を次のようにWHERE句に追加します。

    SELECT * FROM MYTABLE WHERE <results from above>;
    

    そして、根本的な原因がわかります。上記の場合、「他のユーザー」には、where句を作成するために必要なsys_context変数も、ログイントリガーへのアクセスもありませんでした。

    ちなみに、ここで遭遇する可能性のある別の問題は、ポリシー関数が独自のテーブルを参照する場合の循環参照です。理想的には、ポリシー関数がポリシー関数内でそれ自体をバイパスすることを期待しているため、存在しないなどです。そのように機能しているようです。




    1. Doctrine-からのサブクエリ

    2. ドロップダウンphpmysqlに列挙値を一覧表示します

    3. Row_Number()で必要な動的ピボット

    4. 把握するのを手伝ってください(内側?)参加する