Oracle Error ORA-30553: The function is not deterministic

Oracle Error Message

ORA-30553: The function is not deterministic

Reason for the Error

The function on which the index is defined is not deterministic

Solution

If the function is deterministic, mark it DETERMINISTIC. If it is not deterministic (it depends on package state, database state, current time, or anything other than the function inputs) then do not create the index. The values returned by a deterministic function should not change even when the function is rewritten or recompiled.