我想在存储过程中调用python脚本,获取python返回的结果并将其分配给mysql变量。这个是可能的吗?我该怎么做?
谢谢。
发布于 2014-11-26 08:12:50
我使用Python数据库API- MySQLdb做了类似的事情。您可以从这里下载它。我没有从存储过程中调用python脚本,而是反过来,从python内部调用一个存储过程,并将参数传递给它。
存储过程采用两种类型的参数(参数)。IN和OUT.IN类型的参数是存储过程的输入,而OUT类型的参数是存储过程的输出。通过下面的示例,您将能够更好地理解它。
假设这是我的存储过程。
CREATE PROCEDURE add(IN num1 INT, IN num2 INT, OUT add_result INT)
BEGIN
SET add_result := num1 + num2;
END;现在,在python中,您可以向存储过程传递两个参数,并获得add_result变量中返回的结果,这是存储过程的第三个参数。
>>> import MySQLdb
>>> mysql = MySQLdb.connect(user=User,passwd=Passwd,db="test_db")
>>> mysql_cursor = mysql.cursor()
>>> args = (5, 7, 0) # 0 is to hold value of the OUT argument add_result
>>> cursor.callproc('add', args)
('5', '7', 12L)很优雅,不是吗?有关此API的更多信息,请阅读以下链接。
希望这能有所帮助。
https://stackoverflow.com/questions/27135666
复制相似问题