Aylık arşivler: Temmuz 2016

Türkçe karakter temizleme Oracle fonksiyonu

Kirli (ya da küçük hatalar içerebilen) veri ile çalışıldığında kullanılabilecek Türkçe karakterleri temizleyen Oracle fonksiyonu.


CREATE OR REPLACE FUNCTION F_CLEARCHARS(PIN1 VARCHAR2)
RETURN VARCHAR2
IS

V1 VARCHAR2(100);
V2 VARCHAR2(100);
VI NUMBER(10);
VIV VARCHAR2(1);

BEGIN

V2 := '';

V1 := TRANSLATE(PIN1, 'ÇĞİÖŞÜçğıöşü', 'CGIOSUcgiosu');

FOR VI IN 1..LENGTH(V1) LOOP

  VIV := SUBSTR(V1,VI,1);

  IF VIV IN ('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','R','S','T','U','V','Y','Z',
             'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','r','s','t','u','v','y','z',
             '0','1','2','3','4','5','6','7','8','9') THEN
    V2 := V2 || VIV;
  END IF;

END LOOP;

V2 := UPPER(V2);

RETURN V2;

EXCEPTION
  WHEN OTHERS THEN
    RETURN NULL;

END;