(år gammal fråga men eftersom jag snubblade över den ska jag gå vidare och svara på den för någon annan...)
ORA-28113 betyder bara att när din policyfunktion returnerade en where-klausul hade den resulterande SQL-koden något fel. Du kan få detaljer genom att titta på spårningsfilen. Försök också:
select Select_Nhanvien('myschema','mytable') from dual;
Och lägg sedan till resultaten i en WHERE-sats så här:
SELECT * FROM MYTABLE WHERE <results from above>;
Och då bör du se grundorsaken. Jag gissar att den "andra användaren" i fallet ovan inte hade vare sig sys_context-variablerna som krävs för att bygga where-satsen, eller tillgång till inloggningsutlösaren.
Som en sidoanteckning, ett annat problem du kan stöta på här är cirkulär referens när din policyfunktion refererar till sin egen tabell - helst skulle jag förvänta mig att en policyfunktion går förbi sig själv inom policyfunktionen så att du INTE FINNS, etc. men det gör det' Det verkar inte fungera så.