我已经成功创建了一个函数,但是无法运行它。
这是我的InitCap(InputString)函数,该函数已成功创建并添加到我的数据库中:
DELIMITER //
drop function InitCap;
CREATE FUNCTION InitCap(InputString varchar(4000)) RETURNS VARCHAR(4000) DETERMINISTIC
BEGIN
DECLARE OutputString VARCHAR(255);
DECLARE Index1 INT;
DECLARE Char1, PrevChar1 CHAR(1);
SET OutputString = LOWER(InputString), Index1 = 1;
WHILE Index1 <= LEN(InputString) DO
SET Char1 = SUBSTRING(InputString, Index1, 1),
PrevChar1 = CASE WHEN Index1 = 1 THEN ' '
ELSE SUBSTRING(InputString, Index1 - 1, 1) end;
IF PrevChar1 IN (' ', ';', ':', '!', '?', ',', '.', '_', '-', '/', '&', '''', '(') THEN
BEGIN
IF PrevChar1 != '''' OR UPPER(Char1) != 'S' THEN
SET OutputString = STUFF(OutputString, Index1, 1, UPPER(Char1));
END IF;
END
;
END IF;
SET Index1 = Index1 + 1;
END WHILE;
RETURN OutputString;
END //
DELIMITER ;
我尝试运行以下内容:
从表中选择InitCap(string_variable);
但不断获得
错误1305(42000):功能[db] .LEN不存在