This is cute ... this is not the answer, but I cannot post it in the comments with any readable clarity.
It all runs on one instance (oracle 11) ... but I think it shows a similar problem.
SQL> select version from v$instance;
VERSION
-----------------
11.2.0.4.0
SQL> select * from dual where 1 = nvl(1,'X');
D
-
X
SQL> select nvl(1,'X') from dual;
select nvl(1,'X') from dual
*
ERROR at line 1:
ORA-01722: invalid number
SQL>
I remember seeing it before, but I cannot remember how to explain it. Oo
, , -, NVL - WHERE SELECT.