Oracle
 sql >> база данни >  >> RDS >> Oracle

ORA-28113:предикатът на политиката има грешка

(въпрос от преди година, но тъй като случайно попаднах на него, ще продължа и ще отговоря вместо всеки друг...)

ORA-28113 просто означава, че когато вашата функция на правилата е върнала клауза where, полученият SQL е имал някаква грешка. Можете да получите подробности, като разгледате файла за проследяване. Също така опитайте:

select Select_Nhanvien('myschema','mytable') from dual;

И след това добавете резултатите към клауза WHERE по следния начин:

SELECT * FROM MYTABLE WHERE <results from above>;

И тогава трябва да видите първопричината. Предполагам, че в случая по-горе „другият потребител“ не е имал нито променливите sys_context, необходими за изграждане на клаузата where, нито достъп до тригера за влизане.

Като странична бележка, друг проблем, с който можете да се сблъскате тук, е кръговата препратка, когато вашата функция на политика препраща към собствена таблица - в идеалния случай бих очаквал функция на политика да заобиколи себе си в рамките на функцията на политика, така че можете да НЕ СЪЩЕСТВУВА и т.н., но това не е изглежда, че работи по този начин.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle 11g Обратна съвместимост с по-стари версии на Oracle

  2. Миграция на Java 11 - createConnectionBuilder() от PoolDataSourceImpl се сблъсква с createConnectionBuilder() от javax.sql.DataSource

  3. Хибернация на параметризирани sql заявки, бавни и активни сесии на oracle

  4. PL/SQL FTP API двоичен срещу ascii режим

  5. PL / SQL за търсене на низ в цялата база данни