23 lines
524 B
MySQL
23 lines
524 B
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `pbx`.`phone_isValid`(vPhone VARCHAR(255))
|
||
|
BEGIN
|
||
|
/**
|
||
|
* Check if an phone has the correct format and
|
||
|
* throws an exception if it hasn't.
|
||
|
*
|
||
|
* @param vPhone The phone number
|
||
|
*/
|
||
|
DECLARE vIsValid BOOL;
|
||
|
|
||
|
SET vIsValid = vPhone IS NULL
|
||
|
OR (vPhone REGEXP '^[0-9]+$'
|
||
|
AND vPhone NOT REGEXP '^0+$'
|
||
|
AND vPhone NOT REGEXP '^0034');
|
||
|
|
||
|
IF NOT vIsValid THEN
|
||
|
SIGNAL SQLSTATE '45000'
|
||
|
SET MESSAGE_TEXT = 'Phone format is invalid';
|
||
|
END IF;
|
||
|
END$$
|
||
|
DELIMITER ;
|