Python MySQLdb自定义函数错误



我定义了一个自定义函数,如下所示:

def create_extract_position_type_1(self):
self.c.execute("""CREATE FUNCTION extract_position_type_1 (f_str VARCHAR)
RETURNS VARCHAR
BEGIN
DECLARE pstr VARCHAR(1600)
SET pstr = SUBSTRING(f_str, "|", 4)
RETURN pstr
END""")

当我运行这个功能时,我得到了这个错误:

_mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')nntttttttRETURNS VARCHARnntttttt    BEGINnntttttt    DECLARE pstr VARCHAR(1600)' at line 1")

我做错了什么?

SQL的语法需要一些更正。VARCHAR应具有长度限制

试试这个

DELIMITER $$
CREATE FUNCTION extract_position_type_1(f_str VARCHAR(500) ) RETURNS VARCHAR(500)
BEGIN
DECLARE pstr VARCHAR(1600);
SET pstr = SUBSTRING(f_str, '|', 4);
RETURN pstr;
END

最新更新