vn-asterisk/sql/phone_is_valid.sql

25 lines
573 B
SQL

/**
* Checks whether a passed phone number has valid sintax
*
* @param v_phone The phone to check format
* @return %TRUE if it's well formated
**/
DROP PROCEDURE IF EXISTS pbx.phone_is_valid;
DELIMITER $$
CREATE PROCEDURE pbx.phone_is_valid (v_phone VARCHAR(255))
BEGIN
DECLARE v_is_valid BOOLEAN;
SET v_is_valid = v_phone IS NULL
OR (v_phone REGEXP '^[0-9]+$'
AND v_phone NOT REGEXP '^0+$'
AND v_phone NOT REGEXP '^0034');
IF NOT v_is_valid
THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'PHONE_INVALID_FORMAT';
END IF;
END$$
DELIMITER ;