利用mysqldb的callproc调用存储过程时,返回值为输入的参数;
现在的问题是如何获得存储过程本身设定的返回值
存储过程如下:
CREATE PROCEDURE test_stuff.get_lastpoll()
BEGIN
DECLARE POLLTIME TIMESTAMP DEFAULT NULL;
START TRANSACTION;
SELECT poll_date_time
FROM test_stuff.poll_table
LIMIT 1
INTO POLLTIME
FOR UPDATE;
IF POLLTIME IS NULL THEN
INSERT INTO
test_stuff.poll_table
(poll_date_time)
VALUES
( UTC_TIMESTAMP() );
COMMIT;
SELECT NULL as POLL_DATE_TIME;
ELSE
UPDATE test_stuff.poll_table SET poll_date_time = UTC_TIMESTAMP();
COMMIT;
SELECT DATE_FORMAT(POLLTIME, '%Y-%m-%d %H:%i:%s') as POLL_DATE_TIME;
END IF;
END
python代码如下:
#!/usr/bin/python
import sys
import MySQLdb
try:
mysql = MySQLdb.connect(user=User,passwd=Passwd,db="test_stuff")
mysql_cursor = mysql.cursor()
results=mysql_cursor.callproc( "get_lastpoll", () )
print results
mysql_cursor.close()
mysql.close()
except MySQLdb.Error, e:
print "MySQL Error %d: %s" % ( e.args[0], e.args[1] )
sys.exit(1)
这个程序期望能够获得存储过程的返回值如下:
POLL_DATE_TIME
-------------------
2009-02-18 22:27:07
但是结果却不是,而是你传给存储过程的参数
解决过程如下:
mysql_cursor.execute( "call get_lastpoll();" )
results=mysql_cursor.fetchone()
print results[0]
如果是带参数的存储过程:
cursor.execute( "call pro_recharge('10010328','2010-05-10','1234567890111125');" )
results=cursor.fetchone()
print results[0]
问题解决
分享到:
相关推荐
在Python编程中,调用MySQL数据库的存储过程并获取返回值是常见的操作,尤其是在执行复杂的数据库操作时。这里我们将详细探讨如何使用Python的`MySQLdb`库来完成这个任务。 首先,确保你已经安装了`MySQLdb`库,...
在Python编程中,有时我们需要与关系型数据库进行交互...总之,Python通过`MySQLdb`库可以方便地连接MySQL数据库并调用存储过程。了解如何正确传递参数和获取输出结果是关键,这有助于在实际项目中实现高效的数据操作。
在实际开发中,MySQLdb通常与其他Python库如`pandas`结合使用,方便地将数据库结果转换为DataFrame,进行数据分析或存储。同时,由于MySQLdb基于较老的MySQL C API,对于较新的MySQL版本,可能需要考虑使用更新的...
连接MySQLdb1-MySQLdb-1.2.5.zip MySQLdb1-MySQLdb-1.2.5.zip MySQLdb1-MySQLdb-1.2.5.zip MySQLdb1-MySQLdb-1.2.5.zip
如果安装过程中出现权限问题,可能需要使用`sudo`提升权限。安装完成后,MySQLdb模块应该已经被添加到Python的site-packages目录中。 5. **验证安装**:打开Python解释器,尝试导入MySQLdb模块来检查是否安装成功...
在安装或使用Python的MySQLdb时,这些依赖库有时需要被正确地放置在系统路径中,以确保Python程序可以正常调用MySQL的功能。 `MySQL-python-1.2.2.win32-py2.6.exe`是一个可执行文件,它是MySQLdb的安装包,针对...
这个包里有两个包,都可以用来在windows上安装python-MySQLdb,选择其中一种就可以!我比较喜欢用-master那个包,因为只要解压后执行python setup.py install就可以了。另一个包在安装时若出现找不到python2.7的安装...
MySQLdb是Python编程语言中用于连接MySQL数据库的一个重要模块,它为Python程序员提供了一个符合Python标准库DB-API接口的MySQL驱动。MySQLdb 1.2.4b4是该模块的一个版本,它提供了稳定性和兼容性的改进,使得Python...
除了基本的CRUD(创建、读取、更新、删除)操作,MySQLdb还支持事务处理、预编译语句、存储过程调用等功能,为Python开发者提供了丰富的数据库操作能力。 总结一下,"mysqldb64位"是针对Windows 64位平台的Python ...
MySQLdb-Python是Python编程语言中用于连接MySQL数据库的一个重要模块。这个模块为Python程序员提供了一个接口,使得他们能够方便地在Python程序中操作MySQL数据库,执行SQL查询,管理数据等任务。它基于DB-API...
封装了mysqldb方法方便调用。直接在脚本引用
MySQLDB是Python编程语言中用于连接和操作MySQL数据库的一个接口,而pymysql则是MySQLDB的一个替代品,它是一个纯Python实现的MySQL驱动程序。在Python中,使用这些库可以方便地进行数据库的CRUD(创建、读取、更新...
6. **错误处理**:在实际操作中,可能会遇到权限问题、数据库连接错误等问题,需要根据错误信息进行排查。例如,检查MySQL服务是否正在运行,用户名和密码是否正确,以及数据库是否已创建。 了解了这些基本知识后,...
python数据库连接,数据导入,能直接使用的模块类,还添加了方便的使用方法。python新手必备,老手到这么用。
MySQLdb是Python编程语言中一个常用的库,它提供了与MySQL数据库交互的能力。这个库使得Python开发者可以方便地使用Python语法来执行SQL语句,管理数据库,以及处理数据。在描述中提到的`__init__.py`和`converters....
在安装过程中,可能会遇到依赖问题,因为`mysqlclient`需要`libmysqlclient`库。在Windows上,你需要安装MySQL的Connector/C,这通常包含了所需的库。可以从MySQL官网下载并安装MySQL Connector/C。 安装完`...
python2.6-MySQLdb,包括python2.6安装包、MySQLdb for python2.6安装包、MySQLdb使用配置,为想学习Python操作mysql数据库的同学提供了极大的方便。。。