ORACLE - Seleccione contar en una subconsulta
Tengo una tabla de Oracle que contiene un conjunto de rangos (RangeA y RangeB). Estas columnas son varchar ya que pueden contener valores numéricos y alfanuméricos, como el siguiente ejemplo:
ID|RangeA|RangeB
1 | 10 | 20
2 | 21 | 30
3 | AB50 | AB70
4 | AB80 | AB90
Necesito hacer una consulta que devuelva solo los registros que tienen valores numéricos y realizar un conteo en esa consulta. Hasta ahora he intentado hacer esto con dos consultas diferentes sin suerte:
Consulta 1:
SELECT COUNT(*) FROM (
SELECT RangeA, RangeB FROM table R
WHERE upper(R.RangeA) = lower(R.RangeA)
) A
WHERE TO_NUMBER(A.RangeA) <= 10
Consulta 2:
WITH A(RangeA,RangeB) AS(
SELECT RangeA, RangeB FROM table
WHERE upper(RangeA) = lower(RangeA)
)
SELECT COUNT(*) FROM A WHERE TO_NUMBER(A.RangeA) <= 10
La subconsulta está funcionando bien, ya que obtengo los dos registros que solo tienen valores numéricos, pero la parte COUNT de la consulta está fallando. Debería obtener solo 1 en el conteo, pero en su lugar, obtengo el siguiente error:
ORA-01722: invalid number
01722. 00000 - "invalid number"
¿Qué estoy haciendo mal? Cualquier ayuda es muy apreciada.