(å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.