Hola,
Perdona, recien veo esto
WHERE c_prov_id = 24, si ningun registro cumple con la condicion, al tener un MAX en el SELECT, Oracle devuelve 1 registro con valor NULL en vez de 0 registros.
Código:
SQL> select id from t1;
ID
----------
1
2
3
4
SQL> select id from t1 where id = 10;
ninguna fila seleccionada
SQL> select nvl(max(id),10) from t1 where id = 10;
NVL(MAX(ID),10)
---------------
10
Saludos