sql - MariaDB '' 附近的语法不正确
问题描述
正如标题所说,我的语法在某处有错误。这是 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 ;
推荐阅读
- php - 为什么在 Lumen 上运行 php artisan 时会发生错误
- vba - 循环通过 ODBC 连接
- javascript - 如何从字符串中替换 data-v 属性?
- youtube-api - 关于 Google Apps 脚本中的 YouTube 库配额
- libgdx - 小于 0.01 的比例字体按 0.01 处理
- c# - 编写突变graphql-client c#
- docker - 使用 yaml 锚时有效的 docker-compose 文件未部署为堆栈
- python - 使用 jupyter notebook 运行代码时出现 argparse 错误
- flutter - 参数类型'列表
' 不能分配给 Dart 上的参数类型 'String'.dart(argument_type_not_assignable) - salesforce - 将顶点逻辑添加到 Visualforce 页面