Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE DEFINER=`ccbrenta_usuario`@`186.247.103.42` FUNCTION `SOUNDEX_SPLITTED`(`strValue` TINYTEXT, `strSeparator` TINYTEXT)
- RETURNS tinytext CHARSET latin1
- LANGUAGE SQL
- DETERMINISTIC
- NO SQL
- SQL SECURITY INVOKER
- COMMENT 'Executa um SOUNDEX separando por espaços.'
- BEGIN
- DECLARE spaceFirst INT;
- DECLARE spaceLast INT DEFAULT 0;
- DECLARE strLength INT DEFAULT LENGTH(strValue);
- DECLARE soundexPart TINYTEXT;
- DECLARE soundexValue TINYTEXT;
- IF strValue RLIKE "[0-9]"
- OR LENGTH(strValue) >= 255 THEN
- RETURN NULL;
- END IF;
- SET strValue = CONCAT(strValue, " ");
- IF strSeparator IS NULL THEN
- SET strSeparator = " ";
- END IF;
- STR_LOOP:
- WHILE spaceLast < strLength DO
- SET spaceFirst = spaceLast + 1;
- SET spaceLast = LOCATE(" ", strValue, spaceFirst);
- SET soundexPart = SUBSTRING(strValue, spaceFirst, spaceLast - spaceFirst);
- IF LENGTH(soundexPart) <= 2 THEN
- ITERATE STR_LOOP;
- END IF;
- SET soundexValue = CONCAT_WS(strSeparator, soundexValue, SOUNDEX(soundexPart));
- END WHILE;
- RETURN TRIM(soundexValue);
- END
Advertisement
Add Comment
Please, Sign In to add comment