المحدد $$;
إسقاط الدالة في حالة وجود `radius`.`fun_split`$$
إنشاء محدد=`root`@`% ` FUNCTION `fun_split`(nm varchar(100)) إرجاع varchar(500) CHARSET latin1
يقرأ بيانات SQL
يبدأ
أعلن أنا كثافة العمليات.
أعلن رتن كثافة العمليات؛
أعلن rtn1 int؛
أعلن ثانية varchar(10);
أعلن rtnstr varchar(500);
تعيين ط = 1؛
تعيين rtnstr='';
بينما أنا <الطول (نانومتر) أفعل
set rtn= ascii(substring(nm,i,1));
إذا رتن> 127 ثم
set rtn1= ascii(right(substring(nm,i,2),1));
إذا rtn1> 127 ثم
إذا كنت <الطول (نانومتر) -1 إذن
إذا (ascii(right(substring(nm,i,3),1))>127 و ascii(right(substring(nm,i,4),1))>127) إذن
تعيين sec=concat(right(concat('00',rtn-160),2),right(concat('00',rtn1-160),2),right(concat('00',ascii(right(substring) (nm,i,3),1))-160),2),right(concat('00',ascii(right(substring(nm,i,4),1))-160),2),' ');
آخر
تعيين ثانية = ''؛
نهاية إذا؛
آخر
تعيين ثانية = ''؛
نهاية إذا؛
آخر
set sec=concat(char(rtn),char(rtn1));
نهاية إذا؛
مجموعة ط = أنا + 1؛
آخر
إذا كنت <الطول (نانومتر) -1 إذن
إذا (ascii(right(substring(nm,i,2),1))>127 و ascii(right(substring(nm,i,3),1))>127) إذن
set sec=concat(char(rtn),' ');
آخر
set sec=char(rtn);
نهاية إذا؛
آخر
إذا (ascii(right(substring(nm,i,2),1))>127 و ascii(right(substring(nm,i,3),1))>127) إذن
set sec=char(rtn);
آخر
set sec=char(rtn,ascii(right(substring(nm,i,2),1)));
نهاية إذا؛
نهاية إذا؛
نهاية إذا؛
set rtnstr=concat(rtnstr,sec);
مجموعة ط = أنا + 1؛
نهاية بينما؛
العودة rtnstr;
END$$
DELIMITER ;$$