PLSQL karakter aramak,istenen karakter sayısını bulmak
Bu örneğimizde plsql ile verilen bir string içerisinde aranan string kaç defa geçiyor saydıralım.Bunun için bir fonksiyon yazacağız, iki tane varchar2 parametre alıp bize aranan karakterin sayısını döndürecek.Hem plsql fonksiyonlar için örnek olacağını düşünüyorum.Fonksiyonda parametreler UPPER fonksiyonu ile büyük harfe dönüşüyor siz kendinize göre uyarlarsınız.
Önce fonksiyonumuzu yazalım..
CREATE OR REPLACE FUNCTION karakter_say(metin VARCHAR2, aranacak_karakter VARCHAR2)
RETURN NUMBER IS
say_ NUMBER:=0;
sonraki_ NUMBER:=1;
metin_ VARCHAR2(4000);
aranacak_karakter_ VARCHAR2(4000);
BEGIN
metin_ := LOWER(metin);
aranacak_karakter_ := LOWER(aranacak_karakter);
FOR I IN 1 .. LENGTH(metin_) LOOP
IF (LENGTH(aranacak_karakter_) <= LENGTH(metin_) - sonraki_ + 1) AND
(SUBSTR(metin_, sonraki_, LENGTH(aranacak_karakter_)) = aranacak_karakter_) THEN
say_ := say_ + 1;
END IF;
sonraki_:=sonraki_ + 1;
END LOOP;
RETURN say_;
END karakter_say;
Verdiğimiz stringde d karakteri kaç defa geçiyor bulalım.
SELECT karakter_say('sdf3453576575/*_qwe34fddfgh','d') from dual;
3
Verdiğimiz stringde ömer kaç defa geçiyor bulalım.
SELECT karakter_say('sdf3ömer575/*_qweömerdfgh','ömer') from dual;
2