Ini dia:
select length('123-345-566') - length(replace('123-345-566','-',null))
from dual;
Secara teknis, jika string yang ingin Anda periksa hanya berisi karakter yang ingin Anda hitung, kueri di atas akan mengembalikan NULL; pertanyaan berikut akan memberikan jawaban yang benar dalam semua kasus:
select coalesce(length('123-345-566') - length(replace('123-345-566','-',null)), length('123-345-566'), 0)
from dual;
0 terakhir dalam coalesce
menangkap kasus di mana Anda menghitung dalam string kosong (yaitu NULL, karena length(NULL) =NULL di ORACLE).