正如标题所说,我的语法某处有错误。这是 MariaDB 10.1.31。
DROP FUNCTION IF EXISTS NO_UMLAUT;
CREATE FUNCTION NO_UMLAUT(TextString VARCHAR(255)) RETURNS VARCHAR(255)
BEGIN
SET TextString = REPLACE(TextString, 'ä', 'a');
SET TextString = REPLACE(TextString, 'ë', 'e');
SET TextString = REPLACE(TextString, 'ḧ', 'h');
SET TextString = REPLACE(TextString, 'n̈', 'n');
SET TextString = REPLACE(TextString, 'ï', 'i');
SET TextString = REPLACE(TextString, 'ẗ', 't');
SET TextString = REPLACE(TextString, 'ö', 'o');
SET TextString = REPLACE(TextString, 'ẅ', 'w');
SET TextString = REPLACE(TextString, 'ß', 'b');
SET TextString = REPLACE(TextString, 'ü', 'u');
SET TextString = REPLACE(TextString, 'ẍ', 'x');
SET TextString = REPLACE(TextString, 'ÿ', 'y');
RETURN TextString;
END;
和错误:
You have an error in your SQL syntax;
check the manual that corresponds to your MariaDB server version
for the right syntax to use near '' at line 3.
到目前为止,我尝试了文档中的一个函数,但语法也有错误。我在 HeidiSQL 9.5.0.5196 中执行此查询。
最佳答案
我认为您只需要 DELIMITER
语句。
函数本身没问题,如图所示 SQL Fiddle (为此目的,MariaDB 和 MySQL 是相同的)。
尝试添加:
DELIMITER $$
<your function definition>
DELIMITER ;
关于sql - MariaDB '' 附近的错误语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50025043/