CREATE OR REPLACE FUNCTION "AD_SOYAD_YILDIZLI" (x_adi VarChar2) Return VarChar2 Is
--Gelen stringde her kelimenin ilk iki karakterini alır kalanına yıldız basar.
yildizli VarChar2(100);
xstring VarChar2(100);
point Number;
Begin
xstring := SUBSTR(LTRIM(RTRIM( REPLACE(REPLACE(REPLACE(x_adi,'(',' '),')',' '),'.',' ') )),1,100) ;
yildizli := NULL ;
LOOP
point := INSTR(xstring,' ') ;
IF point IS NULL THEN
yildizli := 'NULL' ;
EXIT;
ELSIF point = 0 THEN
yildizli := Case NVL(yildizli,'NULL')
When 'NULL' Then yildizli
Else yildizli||' '
End ||
RPAD(SUBSTR(xstring,1,2),LENGTH(xstring),'*') ;
EXIT; -- exit loop immediately */
ELSE
yildizli := Case NVL(yildizli,'NULL')
When 'NULL' Then yildizli
Else yildizli||' '
End ||
RPAD( SUBSTR(xstring,1,2) ,
Case point
When 0 Then LENGTH(xstring)
Else LENGTH(SUBSTR(xstring,1,point-1))
End ,'*') ;
xstring := LTRIM(RTRIM( SUBSTR(xstring,point+1) ));
END IF;
END LOOP;
Return yildizli;
Exception
When Others Then
--dbms_output.put_line(SQLCODE || ' - ' || SQLERRM);
Return 'XX*** YY***';
End;