sql >> Databáze >  >> RDS >> Oracle

ORA-28113:Predikát zásad obsahuje chybu

(rok stará otázka, ale protože jsem na ni narazil, odpovím na ni za kohokoli jiného...)

ORA-28113 pouze znamená, že když vaše funkce zásad vrátila klauzuli where, výsledný SQL měl nějakou chybu. Podrobnosti můžete získat pohledem na trasovací soubor. Zkuste také:

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

A pak připojte výsledky ke klauzuli WHERE takto:

SELECT * FROM MYTABLE WHERE <results from above>;

A pak byste měli vidět hlavní příčinu. Hádám, že ve výše uvedeném případě „jiný uživatel“ neměl ani proměnné sys_context potřebné k vytvoření klauzule where, ani přístup k spouštěči přihlášení.

Jako vedlejší poznámku, dalším problémem, na který zde můžete narazit, je cyklický odkaz, když vaše funkce zásad odkazuje na svou vlastní tabulku – v ideálním případě bych očekával, že se funkce zásad sama obejde v rámci funkce zásad, takže NEEXISTUJE atd., ale to neexistuje. Zdá se, že to tak nefunguje.




  1. Jak nainstalovat SSMS

  2. použijte mysqli_connect a mysql_select_db

  3. Konektor Access Dataverse je nyní k dispozici k testování

  4. Vezmete předposlední řádek pouze jedním výběrem v SQL Server?