sql >> Database >  >> RDS >> Oracle

ORA-28113:beleidspredikaat bevat een fout

(jaar oude vraag maar aangezien ik het tegenkwam, ga ik verder en beantwoord het voor iemand anders...)

ORA-28113 betekent alleen dat wanneer uw beleidsfunctie een waar-clausule retourneerde, de resulterende SQL een fout bevatte. U kunt details krijgen door naar het traceerbestand te kijken. Probeer ook:

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

En voeg dan de resultaten toe aan een WHERE-component zoals deze:

SELECT * FROM MYTABLE WHERE <results from above>;

En dan zou je de oorzaak moeten zien. Ik vermoed dat in het bovenstaande geval de 'andere gebruiker' niet de sys_context-variabelen had die nodig waren om de waar-clausule te bouwen, of toegang had tot de login-trigger.

Terzijde:een ander probleem dat u hier kunt tegenkomen, is kringverwijzing wanneer uw beleidsfunctie naar zijn eigen tabel verwijst - idealiter zou ik verwachten dat een beleidsfunctie zichzelf zou omzeilen binnen de beleidsfunctie, zodat u NIET kunt BESTAAN, enz. maar dat doet het niet' lijkt niet zo te werken.




  1. Java-desktop - hoe databasetoegang te scheiden van de UI-thread?

  2. Kan geen externe verbinding maken met MySQL Server met MySQL Workbench

  3. MySQL:records ingevoegd per uur, voor de afgelopen 24 uur

  4. een vriendenlijst instellen in mysql