구분자 $$;
`radius`.`fun_split`$$
CREATE DEFINER=`root`@`% ` FUNCTION `fun_split`(nm varchar(100)) RETURNS varchar(500) CHARSET latin1
존재하는 경우 함수 삭제
SQL 데이터 읽기
시작하다
i int를 선언합니다.
rtn int를 선언합니다.
rtn1 int를 선언합니다.
sec varchar(10) 선언;
rtnstr varchar(500) 선언;
i=1로 설정;
rtnstr=''; 설정
WHILE i <길이(nm) DO
set rtn= ascii(하위 문자열(nm,i,1));
IF rtn>127이면
set rtn1= ascii(right(substring(nm,i,2),1));
IF rtn1> 127 그러면
IF i<길이(nm)-1 THEN
IF (ascii(right(substring(nm,i,3),1))>127 및 ascii(right(substring(nm,i,4),1))>127) THEN
set sec=concat(right(concat('00',rtn-160),2),right(concat('00',rtn1-160),2),right(concat('00',ascii(right(하위 문자열) (nm,i,3),1))-160),2),right(concat('00',ascii(right(substring(nm,i,4),1))-160),2),' ');
또 다른
초 설정='';
종료하면;
또 다른
초 설정='';
종료 IF ;
또 다른
set sec=concat(char(rtn),char(rtn1));
종료하면;
SET i = i + 1;
또 다른
IF i<길이(nm)-1 THEN
IF (ascii(right(substring(nm,i,2),1))>127 및 ascii(right(substring(nm,i,3),1))>127) THEN
set sec=concat(char(rtn),' ');
또 다른
set sec=char(rtn);
종료하면;
또 다른
IF (ascii(right(substring(nm,i,2),1))>127 및 ascii(right(substring(nm,i,3),1))>127) THEN
set sec=char(rtn);
또 다른
set sec=char(rtn,ascii(right(substring(nm,i,2),1)));
종료하면;
종료하면;
종료하면;
set rtnstr=concat(rtnstr,sec);
SET i = i + 1;
종료하는 동안;
반환 rtnstr;
END$$
구분 기호 ;$$