Varsågod:
select length('123-345-566') - length(replace('123-345-566','-',null))
from dual;
Tekniskt sett, om strängen du vill kontrollera endast innehåller det tecken du vill räkna, kommer ovanstående fråga att returnera NULL; Följande fråga ger rätt svar i alla fall:
select coalesce(length('123-345-566') - length(replace('123-345-566','-',null)), length('123-345-566'), 0)
from dual;
Den sista nollan i coalesce
fångar fallet där du räknar i en tom sträng (dvs. NULL, eftersom length(NULL) =NULL i ORACLE).