(pertanyaan lama tetapi karena saya menemukannya, saya akan melanjutkan dan menjawabnya untuk orang lain ...)
ORA-28113 hanya berarti bahwa ketika fungsi kebijakan Anda mengembalikan klausa where, SQL yang dihasilkan memiliki beberapa kesalahan. Anda bisa mendapatkan detail dengan melihat file jejak. Coba juga:
select Select_Nhanvien('myschema','mytable') from dual;
Dan kemudian tambahkan hasilnya ke klausa WHERE seperti ini:
SELECT * FROM MYTABLE WHERE <results from above>;
Dan kemudian Anda harus melihat akar penyebabnya. Saya menduga dalam kasus di atas 'pengguna lain' tidak memiliki variabel sys_context yang diperlukan untuk membangun klausa where, atau akses ke pemicu login.
Sebagai catatan tambahan, masalah lain yang dapat Anda hadapi di sini adalah referensi melingkar ketika fungsi kebijakan Anda mereferensikan tabelnya sendiri - idealnya saya mengharapkan fungsi kebijakan untuk mem-bypass dirinya sendiri dalam fungsi kebijakan sehingga Anda dapat melakukan NOT EXISTS, dll tetapi tidak' tampaknya tidak bekerja seperti itu.