Я хотел бы переписать приведенную ниже функцию Oracle REGEXP_COUNT в MariaDB 10.3. Я пытаюсь переписать, используя концепцию LENGTH, но не могу получить правильный результат.
Я использую шаблон ^((((https?|ftps?|gopher|telnet|nntp):\/\/)|(mailto:|news:))(%[0-9A-Fa-f]{2}|[-()_.!~*\'';/?:@&=+$,A-Za-z0-9])+)([).!/?:,][[:blank:]])?$
и код, подобный этому:
SET SQL_MODE=ORACLE;
DELIMITER //
CREATE OR REPLACE FUNCTION "IS_VALID"(VALUE TEXT) RETURN double
IS
is_valid DECIMAL (1, 0);
BEGIN
is_valid := 0;
IF REGEXP_COUNT(VALUE, '^((((https?|ftps?|gopher|telnet|nntp):\/\/)|(mailto:|news:))(%[0-9A-Fa-f]{2}|[-()_.!~*\'';/?:@&=+$,A-Za-z0-9])+)([).!/?:,][[:blank:]])?$') = 1
THEN
is_valid := 1;
END IF
RETURN is_valid;
END;//
DELIMITER ;