如何从Python中的存储过程获取输出参数?

pro*_*ero 10 python sql-server parameters stored-procedures pymssql

我用谷歌搜索了一下,但也许我没有把正确的魔法咒语放到搜索框中.

有谁知道如何从Python中的存储过程获取输出参数?我正在使用pymssql来调用存储过程,而且我不确定返回输出参数的正确语法.我不认为我可以使用任何其他数据库模块,因为我从Linux机器上运行它以连接到MS服务器上的mssql数据库.

import pymssql

con = pymssql.connect(host='xxxxx',user='xxxx',password='xxxxx',database='xxxxx')

cur = con.cursor()

query = "EXECUTE blah blah blah"

cur.execute(query)
con.commit()
con.close()
Run Code Online (Sandbox Code Playgroud)

Mil*_*dev 4

我不是Python专家,但在简要阅读了DB-API 2.0之后,我相信你应该使用游标的“callproc”方法,如下所示:

cur.callproc('my_stored_proc', (first_param, second_param, an_out_param))
Run Code Online (Sandbox Code Playgroud)

然后,您将在“an_out_param”变量的返回值(输出参数)中得到结果。

  • 以防万一其他人看到这个答案,您必须将如下包装的输出参数传递给 callproc: pymssql.output(int, -1) 如此处所述:https://github.com/pymssql/pymssql/blob/98fce86951945e63ee365af4e57336856af681c4/测试/test_sprocs.py#L76-L91 (4认同)