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;