Pregunto yo: ¿No sería mejor que pregutaras eso directamente en el
Foro de Oracle?
A fin de cuentas, Oracle tiene un foro específico, y los que se dedican a él andan más por allí que por acá...
Yendo directamente al tema, DECODE() funciona como un IF/THEN/ELSE, donde las condiciones son el primer parámetro, pero se supone que esperan
operadores lógicos. BETWEEN no es
exactamente un operador lógico porque no devuelve TRUE o FALSE, sino un operador
relacional, el cual que determina un
rango, por lo que puede ser incompatible con el DECODE.
Creo que sería mejor que no lo usaras en el DECODE, y realizases la consulta de una forma un poco más ortodoxa.
Pregunta en el Foro de Oracle.