You can convert the text to rows, then substr the text to get the ascii value of the character in each position:
with str as (
select '#a$%' s from dual
), rws as (
select level x from dual
connect by level <= 4
)
select x, substr ( s, x, 1 ),
ascii ( substr ( s, x, 1 ) ) aci
from rws
cross join str;
X SUBSTR(S,X,1) ACI
1 # 35
2 a 97
3 $ 36
4 % 37