sql >> Databasteknik >  >> RDS >> Oracle

ORA-28113:policypredikat har ett fel

(år gammal fråga men eftersom jag snubblade över den ska jag gå vidare och svara på den för någon annan...)

ORA-28113 betyder bara att när din policyfunktion returnerade en where-klausul hade den resulterande SQL-koden något fel. Du kan få detaljer genom att titta på spårningsfilen. Försök också:

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

Och lägg sedan till resultaten i en WHERE-sats så här:

SELECT * FROM MYTABLE WHERE <results from above>;

Och då bör du se grundorsaken. Jag gissar att den "andra användaren" i fallet ovan inte hade vare sig sys_context-variablerna som krävs för att bygga where-satsen, eller tillgång till inloggningsutlösaren.

Som en sidoanteckning, ett annat problem du kan stöta på här är cirkulär referens när din policyfunktion refererar till sin egen tabell - helst skulle jag förvänta mig att en policyfunktion går förbi sig själv inom policyfunktionen så att du INTE FINNS, etc. men det gör det' Det verkar inte fungera så.




  1. MYSQL PHP Varning:mysql_query() förväntar sig att parameter 1 är sträng

  2. Anpassa kortkommandon i MySql Workbench

  3. Kan inte installera mysql-python (nyare versioner) i Windows

  4. Hur LADDAR man DATA INFILE i mysql med den första kolumnen som Auto Increment?