Oracle - Recursive Calls can also occur when you are calling a PL/SQL function from a SQL statement and this function :
A possible solution is to include the PL/SQL routine into the query itself :
For pre-build function as USER, you can store them once per session in a global package variable and just refer to them instead.