Python 存储过程错误

标签 python mysql stored-procedures

当我尝试在 python 中执行存储过程时出现错误。我正在使用 python 2.7 和 mysql。 当我从 mysql workbench 调用它或从命令行调用时,存储过程工作。
这是代码。

 class db_conn:
     def __init__(self,db_name):
        self.conn = mysql.connector.connect(user = 'test', password = 'test', host = 'localhost', database = 'test')
        self.cursor = self.conn.cursor()
        self.return_data = []


def select_procedure(self, proc):
    print(proc)
    self.cursor.callproc(proc,'')
    self.conn.commit()
    return cursor.stored_results()

我收到以下错误。

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 '' at line 1

这是存储过程。没什么大不了的。

DELIMITER $$
CREATE DEFINER=`test`@`localhost` PROCEDURE `get_info`()
BEGIN
    Select  id, fname,lname
    From    name_table
    where   display = 0 limit 1;
END

最佳答案

您缺少 SP 的关闭信息:

DELIMITER $$
CREATE DEFINER=`test`@`localhost` PROCEDURE `get_info`()
BEGIN
    Select  id, fname,lname
    From    name_table
    where   display = 0 limit 1;
END$$

DELIMITER ;

关于Python 存储过程错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46637237/

相关文章:

MySQL本地网络查询问题

sql - 编写一个 PL/pgSQL 函数,以便在找到 "nothing"时不设置 FOUND?

sql-server - 检索 SQL Server 数据库中所有表的名称列

带有游标和 View 的 MySQL 递归存储过程不刷新

python - 使用 SciPy 对带状稀疏矩阵进行矩阵求逆

c++ - 删除列表中的项目,python 风格和 c++ 风格

php - 如何合并 3 个表中的数据

python - 使用 ctypes 将 python 字符串传递给 Fortran 子例程

python - 为什么在 C++ 中从标准输入读取行比 Python 慢得多?

java - 如何在Excel中动态汇总工作时间?