×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: SQL
Posted by: Ruben Lacasa
Added: Dec 2, 2014 9:38 AM
Views: 1837
  1. DROP FUNCTION IF EXISTS extractPhone;
  2. DELIMITER //
  3. CREATE FUNCTION extractPhone (cadena VARCHAR(255))
  4. RETURNS VARCHAR(255)
  5. DETERMINISTIC
  6. READS SQL DATA
  7.         BEGIN
  8.           DECLARE posicion, longitud INT(11) DEFAULT 0;
  9.           DECLARE auxiliar, resultado, debug VARCHAR(255);
  10.           SET longitud = LENGTH(cadena);
  11.     SET posicion = 1;
  12.     SET resultado = '';
  13.     checkchar: WHILE posicion <= longitud AND LENGTH(resultado) <= 9 DO
  14.         SET auxiliar = SUBSTR(cadena FROM posicion FOR 1);
  15.                                 IF auxiliar REGEXP('[0-9]') THEN
  16.                                         SET resultado = CONCAT(resultado, auxiliar);
  17.                                 END IF;
  18.                                 SET posicion = posicion + 1;
  19.     END WHILE checkchar;
  20.         RETURN resultado;
  21. END //
  22. DELIMITER ;