Python MySQLdb自定义函数错误
Python MySQLdb custom function error
我有一个这样定义的自定义函数:
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 ')\n\n\t\t\t\t\t\t\tRETURNS VARCHAR\n\n\t\t\t\t\t\t BEGIN\n\n\t\t\t\t\t\t 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
我有一个这样定义的自定义函数:
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 ')\n\n\t\t\t\t\t\t\tRETURNS VARCHAR\n\n\t\t\t\t\t\t BEGIN\n\n\t\t\t\t\t\t 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