ORACLE - Selecione Count em uma subconsulta
Eu tenho uma tabela do Oracle que contém um conjunto de intervalos (RangeA e RangeB). Essas colunas são varchar, pois podem conter valores numéricos e alfanuméricos, como no exemplo a seguir:
ID|RangeA|RangeB
1 | 10 | 20
2 | 21 | 30
3 | AB50 | AB70
4 | AB80 | AB90
Eu preciso fazer uma consulta que retorna apenas os registros que possuem valores numéricos e executar uma contagem nessa consulta. Até agora eu tentei fazer isso com duas consultas diferentes sem qualquer sorte:
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
A subconsulta está funcionando bem, pois estou obtendo os dois registros que possuem apenas valores numéricos, mas a parte COUNT da consulta está falhando. Eu deveria estar recebendo apenas 1 na contagem, mas estou recebendo o seguinte erro:
ORA-01722: invalid number
01722. 00000 - "invalid number"
O que estou fazendo de errado? Qualquer ajuda é muito apreciada.