(pytanie sprzed lat, ale odkąd natknąłem się na nie, pójdę dalej i odpowiem na nie dla kogokolwiek innego...)
ORA-28113 oznacza po prostu, że gdy funkcja zasad zwróciła klauzulę where, wynikowy kod SQL zawierał błąd. Możesz uzyskać szczegółowe informacje, przeglądając plik śledzenia. Spróbuj też:
select Select_Nhanvien('myschema','mytable') from dual;
A następnie dołącz wyniki do klauzuli WHERE w następujący sposób:
SELECT * FROM MYTABLE WHERE <results from above>;
A potem powinieneś zobaczyć główną przyczynę. Zgaduję, że w powyższym przypadku „inny użytkownik” nie miał ani zmiennych sys_context wymaganych do zbudowania klauzuli where, ani dostępu do wyzwalacza logowania.
Na marginesie, innym problemem, na który możesz natknąć się tutaj, jest odwołanie cykliczne, gdy twoja funkcja strategii odwołuje się do własnej tabeli - najlepiej oczekiwałbym, że funkcja strategii obejdzie się w obrębie funkcji strategii, więc możesz NIE ISTNIEĆ itp., ale tak się nie dzieje. to wydaje się działać w ten sposób.