with
usernames as
(
select '1' username from dual union all
select '11nml' username from dual union all
select '3' username from dual union all
select 'abc12' username from dual union all
select 'xyz456' username from dual union all
select '12' username from dual union all
select '34' username from dual
)
select *
from usernames u
where not regexp_like( u.username, '^[[:digit:] ]+$')
Uglier, likely slower, but more portable...
with
usernames as
(
select '1' username from dual union all
select '11nml' username from dual union all
select '3' username from dual union all
select 'abc12' username from dual union all
select 'xyz456' username from dual union all
select '12' username from dual union all
select '34' username from dual
)
select *
from usernames u
where replace(replace( replace(replace( replace(
replace(replace( replace(replace( replace(
u.username
, '0', '') , '5', '')
, '1', '') , '6', '')
, '2', '') , '7', '')
, '3', '') , '8', '')
, '4', '') , '9', '') is not null