DÉLIMITEUR $$;
DROP FONCTION SI EXISTE `radius`.`fun_split`$$
CREATE DEFINER=`root`@`% ` FUNCTION `fun_split`(nm varchar(100)) RETOURNE varchar(500) CHARSET latin1
LIT LES DONNÉES SQL
COMMENCER
déclarer je int;
déclarer rtn int ;
déclarer rtn1 int ;
déclarer sec varchar(10);
déclarer rtnstr varchar(500);
définir je = 1 ;
set rtnstr='';
PENDANT que je
SI rtn>127 ALORS
set rtn1= ascii(right(substring(nm,i,2),1));
SI rtn1> 127 ALORS
SI je
set sec=concat(right(concat('00',rtn-160),2),right(concat('00',rtn1-160),2),right(concat('00',ascii(right(sous-chaîne (nm,i,3),1))-160),2),right(concat('00',ascii(right(substring(nm,i,4),1))-160),2),' ');
AUTRE
set sec='';
FIN SI ;
AUTRE
set sec='';
FIN SI ;
AUTRE
set sec=concat(char(rtn),char(rtn1));
FIN SI ;
ENSEMBLE je = je + 1 ;
AUTRE
SI je
set sec=concat(char(rtn),' ');
AUTRE
set sec=char(rtn);
FIN SI ;
AUTRE
SI (ascii(right(substring(nm,i,2),1))>127 et ascii(right(substring(nm,i,3),1))>127) ALORS
set sec=char(rtn);
AUTRE
set sec=char(rtn,ascii(right(substring(nm,i,2),1)));
FIN SI ;
FIN SI ;
FIN SI ;
set rtnstr=concat(rtnstr,sec);
ENSEMBLE je = je + 1 ;
FIN PENDANT QUE ;
RETOUR rtnstr;
FIN$$
DÉLIMITEUR ;$$