sql >> Database teknologi >  >> RDS >> Oracle

ORA-28113:politikprædikat har fejl

(år gammelt spørgsmål, men siden jeg faldt over det, vil jeg gå videre og besvare det for alle andre...)

ORA-28113 betyder bare, at når din politikfunktion returnerede en where-klausul, havde den resulterende SQL en fejl. Du kan få detaljer ved at se på sporingsfilen. Prøv også:

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

Og føj derefter resultaterne til en WHERE-sætning som denne:

SELECT * FROM MYTABLE WHERE <results from above>;

Og så skal du se årsagen. Jeg gætter på, at 'anden bruger' i tilfældet ovenfor hverken havde de sys_context-variabler, der kræves for at bygge where-klausulen, eller adgang til login-triggeren.

Som en sidebemærkning, et andet problem, du kan løbe ind i her, er cirkulær reference, når din policy-funktion refererer til sin egen tabel - ideelt set ville jeg forvente, at en policy-funktion omgår sig selv inden for policy-funktionen, så du IKKE EKSISTERER osv., men det gør' det ser ud til at virke på den måde.




  1. PHP/MySQL - hvordan genererer man automatisk slettelink til en række i en allerede automatisk genereret tabel?

  2. Kan ikke kumulativt summere `COUNT(*)`

  3. Hvorfor returnerer SELECT ... WHERE id =a et resultat, hvis værdien er 0

  4. mod omskrivning, title slugs og htaccess