Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

ORA-28113:predikat kebijakan memiliki kesalahan

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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa menjalankan kueri ini dengan EXECUTE IMMEDIATE menyebabkannya gagal?

  2. Pilih kolom indeks tabel

  3. Bisakah saya mengelompokkan dalam kueri SQL dengan fungsi jendela?

  4. Permintaan Oracle SQL untuk mengelompokkan catatan berurutan

  5. Cara mengekstrak nomor minggu di sql