PLSQL karakter aramak,istenen karakter sayısını bulmak

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

Tagged: , , , , , ,

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir