ORA-01002: invalid number
Causa: El número especificado no es válido.
Acción: Especificar un número válido.
La conversión implícita no funciona correctamente.
En este ejemplo podemos ver por que se produce el error ORA-01722
SQL> select count(*)
from articulos
where almacen = 1
and codigo = '255GH09'
and id = 12345
and trim(provincia) = 'Madrid';
*
ERROR at line 5:
ORA-01722: invalid number
Siendo la columna "id" un VARCHAR2(20), si colocas el número entre comillas simples y utilizas una conversión a carácter usando la función TO_CHAR(12345) solucionaras el error.
Ejemplos
SQL> select count(*)
from <table_name>
where almacen = 1
and codigo = '255GH09'
and id = '12345'
and trim(provincia) = 'Madrid';
SQL> select count(*)
from <table_name>
where almacen = 1
and codigo = '255GH09'
and id = TO_CHAR(12345)
and trim(provincia) = 'Madrid';